【发布时间】:2019-11-08 07:53:39
【问题描述】:
我正在使用推送器从另一台设备接收位置。在我的地图中,我想从推送器数据中动态显示多个标记。
我尝试了多种解决方案;但没有一个有助于实现我所需要的, tried this post
这是我的代码
JSONObject jsonObject1 = new JSONObject(DataFromPusher);
JSONArray jsonArray = jsonObject1.getJSONArray("Userlocation");
for (int i =0; i < jsonArray.length(); i++)
{
jsonObject = jsonArray.getJSONObject(i);
lat = jsonObject.getString("Userlatitude");
lng = jsonObject.getString("Userlongitude");
cor = new LatLng(Double.parseDouble(lat),Double.parseDouble(lng));
runOnUiThread(new Runnable() {
@Override
public void run() {
if (marker != null){
marker.remove();
}
marker = mMap.addMarker(new MarkerOptions().position(cor).title(lat+ " " +lng)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
}
});
}
推送响应:
{
"Userlocation": [
{
"Userlatitude": "12.9325340",
"Userlongitude": "77.5450430"
},
{
"Userlatitude": "12.9325350",
"Userlongitude": "77.5450440"
}
]
}
【问题讨论】:
-
这两点相差 0.1553 米(或 6 英寸),因此很可能有 2 个标记 - 一个在另一个之上。但更重要的是,您的代码实际上删除了前一个标记 - 所以是的,您只会看到一个标记。
-
@Andy 是的,我也是这么想的,它可能会重叠,但我不确定。删除标记的原因是。我只想显示从推送数据接收到的当前位置。
标签: android json google-maps-markers