java - Android Google map 仅绘制一个标记,但不是全部

标签 java android google-maps

我在尝试在 Android 中的谷歌地图上显示多个标记时遇到了一些问题。这是我在 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 返回了多个纬度和经度。有什么想法吗?

提前致谢。

最佳答案

试试这个:

ActivityFragment 中实现 OnMapReadyCallback,因为这将为您提供 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())));
    }

关于java - Android Google map 仅绘制一个标记,但不是全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35839295/

相关文章:

java - 从标签中删除命名空间

java - 如何用三点或水平省略号拆分字符串

android - 将项目添加到回收站 View ?

android - 适用于 Android 的谷歌地图渐变多段线?

java - 使用 compose() 而不是 lambda 表达式的原因是什么?

android - Phonegap - Android 启动画面 - 中心标志

android - Android Room Persistence Library:处理错误

android - 用于测试的 Google Maps API KEY

javascript - 如何使用 JSON 文件中的内容填充 Google Maps API InfoWindow

java - "wrong first argument type. Found: ' android.widget.Compoundbutton.oncheckedchangelistener ', required: ' android.content.context '"