【问题标题】:android - adding a marker to a google map fragmentandroid - 向谷歌地图片段添加标记
【发布时间】:2013-12-18 15:38:34
【问题描述】:

我正在尝试向谷歌地图片段添加标记。

下一个代码用于当用户在电话界面中点击列表视图中的项目时。

我要做的就是替换列表片段并用标记向用户显示该地点的位置。

这是我使用的代码,当我想替换片段时 -

GoogleMapOptions options = new GoogleMapOptions();
        options.camera(CameraPosition.fromLatLngZoom(place, 17));
        options.mapType(GoogleMap.MAP_TYPE_SATELLITE);
        SupportMapFragment mapFrag = SupportMapFragment.newInstance(options);
        FragmentManager fm = getSupportFragmentManager();


        if (marker != null) {
            marker.remove();
        }


        GoogleMap map = mapFrag.getMap();

        MarkerOptions markerOptions = new MarkerOptions();
        markerOptions.position(place);
        markerOptions.title(name);


        marker = map.addMarker(markerOptions);

        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.phone_cont, mapFrag, "map");
        Log.d(TAG, "AFTER TWO LINES");
        ft.addToBackStack(null);
        ft.commit();

但这似乎让应用程序崩溃,知道我在这里做错了什么吗?

【问题讨论】:

    标签: android google-maps fragment


    【解决方案1】:

    因为你正在做这一切

    GoogleMap map = mapFrag.getMap();
    
        MarkerOptions markerOptions = new MarkerOptions();
        markerOptions.position(place);
        markerOptions.title(name);
    
    
        marker = map.addMarker(markerOptions);
    

    在您创建地图之前,所以 mapFrag.getMap() 为空

    您需要在创建片段后创建标记

    【讨论】:

    • 那么我需要做什么才能首先创建片段,然后添加标记?
    • 你需要创建片段,等待它被创建,然后你可以对地图做你想做的事。始终检查以确保 getMap() 不返回 null,如果返回 null,则该片段尚未创建
    • 我试图让地图显示出来,然后调用一个函数来添加标记 - 但现在有一张地图,但没有标记
    猜你喜欢
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2016-04-30
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多