【发布时间】:2016-10-04 18:51:10
【问题描述】:
我正在尝试在谷歌地图中添加多个标记。我面临的问题是,当添加第一个标记时,其余部分都没有添加,即使纬度和经度值不同。
我正在使用 google places API 来获取详细信息并在 google 地图中绘制信息。
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng MyLoc = new LatLng(lati, lngi);
mMap.addMarker(new MarkerOptions().position(MyLoc).title("My Location"));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(MyLoc, 17.0f));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(MyLoc, 17));
if (places == null) {
Toast.makeText(this, "I have no places...", Toast.LENGTH_LONG).show();
return;
}
Place[] items = new Place[places.size()];
places.toArray(items);
for(int i=0;i<items.length;i++){
double sLat = places.get(i).getGeometry().getLocation().getLat();
double sLng = places.get(i).getGeometry().getLocation().getLng();
LatLng latlngg = new LatLng(sLat, sLng);
mMap.addMarker(new MarkerOptions()
.position(latlngg)
.title(places.get(i).getName())
.snippet(places.get(i).getVicinity())
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
.alpha(0.7f));
}
}
【问题讨论】:
-
LatLng latlngg = new LatLng(lati, lngi);为什么不使用 sLat 和 sLng ? -
是的,也使用过,但仍然是同样的问题
-
LatLng latlngg = new LatLng(sLat, sLng);我认为你应该这样改变,否则所有标记都添加在同一点。 -
你有一个复制/粘贴错误,double sLng = places.get(i).getGeometry().getLocation().getLat();应该类似于 double sLng = places.get(i).getGeometry().getLocation().getLongitude();
-
双 sLat = places.get(i).getGeometry().getLocation().getLat();双 sLng = places.get(i).getGeometry().getLocation().getLat(); LatLng latlngg = 新的 LatLng(sLat, sLng); mMap.addMarker(new MarkerOptions() .position(latlngg)
标签: java android google-maps google-maps-api-3