无法在google maps android上动态设置多个标记
我使用推送器从另一个设备到接收器位置。在我的地图中,我希望动态显示来自推送器数据的多个标记 我尝试了多种解决方案;但是没有人帮我实现我所需要的, 这是我的密码无法在google maps android上动态设置多个标记,android,json,google-maps-markers,Android,Json,Google Maps Markers,我使用推送器从另一个设备到接收器位置。在我的地图中,我希望动态显示来自推送器数据的多个标记 我尝试了多种解决方案;但是没有人帮我实现我所需要的, 这是我的密码 JSONObject jsonObject1 = new JSONObject(DataFromPusher); JSONArray jsonArray = jsonObject1.getJSONArray("Userlocation"); for (int i =0; i < jsonArray.length(); i+
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)));
}
});
}
试试这个
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject;
try {
jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
String lat = jsonObject.getString("lat");
String lng = jsonObject.getString("lng");
final MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(Double.parseDouble(lat), Double.parseDouble(lng)));
markerOptions.snippet(name);
Marker marker = googleMapWhole.addMarker(markerOptions);
markerList.add(marker);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
}
for(int i=0;i
这两个点相差0.1553米(或6英寸),因此很可能有两个标记-一个在另一个上。但更重要的是,您的代码实际上删除了以前的标记-因此,是的,您将只看到一个标记。@Andy是的,我也这么认为,它可能重叠,但我不确定。删除标记背后的原因是。我只想显示从推送器数据接收到的当前位置。
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject;
try {
jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
String lat = jsonObject.getString("lat");
String lng = jsonObject.getString("lng");
final MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(Double.parseDouble(lat), Double.parseDouble(lng)));
markerOptions.snippet(name);
Marker marker = googleMapWhole.addMarker(markerOptions);
markerList.add(marker);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
}