尝试在Android中的Google地图上显示多个标记时遇到了一些问题。这是我在onCreate()中所做的:
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
map.moveCamera(CameraUpdateFactory.newLatLngZoom(mLocation, 11.0f));
map.getUiSettings().setZoomControlsEnabled(true);
convertedGeomList = RetrieveStoreAsyncTask.convertedGeom;
for (int i = 0; i < convertedGeomList.size(); i++) {
// Drawing marker on the map
drawMarker(new LatLng(Double.parseDouble(convertedGeomList.get(i)
.getStoreX()), Double.parseDouble(convertedGeomList.get(i)
.getStoreY())));
}
map.addMarker(new MarkerOptions()
.position(new LatLng(1.36111, 103.79907))
.title("Pizza Hut Kranji")
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
map.addMarker(new MarkerOptions()
.position(new LatLng(3.60988, 170.99001))
.title("Pizza Hut Woodlands")
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
我硬编码了两个标记以检查它是否有图,但不幸的是,它只绘制了一个。然后,对于drawMarker():
private void drawMarker(LatLng point) {
// Creating an instance of MarkerOptions
MarkerOptions markerOptions = new MarkerOptions();
// Setting latitude and longitude for the marker
markerOptions.position(point);
// Adding marker on the Google Map
map.addMarker(markerOptions);
}
我不确定为什么它只绘制了一个标记,尽管我的JSON返回了多个lat和lng。有什么想法吗?
提前致谢。
答案 0 :(得分:0)
试试这个:
在OnMapReadyCallback
或Activity
中实施Fragment
,因为这会为您提供onMapReady(GoogleMap map)
方法。
现在在 onCreate():
((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMapAsync(this);
和
@Override
public void onMapReady(GoogleMap map)
{
map.moveCamera(CameraUpdateFactory.newLatLngZoom(mLocation, 11.0f));
map.getUiSettings().setZoomControlsEnabled(true);
convertedGeomList = RetrieveStoreAsyncTask.convertedGeom;
for (int i = 0; i < convertedGeomList.size(); i++) {
// Drawing marker on the map
drawMarker(new LatLng(Double.parseDouble(convertedGeomList.get(i)
.getStoreX()), Double.parseDouble(convertedGeomList.get(i)
.getStoreY())));
}