带有标记的Android谷歌地图片段

Posted

技术标签:

【中文标题】带有标记的Android谷歌地图片段【英文标题】:Android google maps with marker inside fragment 【发布时间】:2016-04-30 19:29:59 【问题描述】:

我想在片段中显示谷歌地图。显示世界地图,但标记将被忽略。 希望有人可以帮助我解决我的问题。 请在下面找到我的代码:

MapsFragment.java:

import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;


public class MapsFragment extends SupportMapFragment 

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    
        super.onCreateView(inflater, container, savedInstanceState);
        View root = inflater.inflate(R.layout.fragment_map, null, false);
        initilizeMap();
        return root;
    

    private void initilizeMap()
    
        SupportMapFragment mSupportMapFragment = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.map);
        if (mSupportMapFragment == null) 
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            mSupportMapFragment = SupportMapFragment.newInstance();
            fragmentTransaction.replace(R.id.map, mSupportMapFragment).commit();
        
        if (mSupportMapFragment != null)
        
            GoogleMap googleMap = mSupportMapFragment.getMap();
            if (googleMap != null)
                googleMap.addMarker(new MarkerOptions().position(new LatLng(10.1253,10.5868)));
        
    

fragment_map.xml(布局):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:gravity="center"
    android:orientation="vertical" >
    <FrameLayout
        android:layout_
        android:layout_
        android:layout_weight="1.03"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:id="@+id/map" />
</LinearLayout>

APIKey和权限已设置:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

谢谢!

【问题讨论】:

【参考方案1】:

不要使用getMap()方法,它已被弃用。你应该使用getMapAsync()。查看this link。您的 mapsFragments 需要实现 OnMapReadyCallback 接口。

【讨论】:

完美。感谢您的提示!现在可以使用了。

以上是关于带有标记的Android谷歌地图片段的主要内容,如果未能解决你的问题,请参考以下文章

带有矢量资产图标的 android 谷歌地图中的自定义标记

谷歌地图片段无法膨胀

从谷歌地图上的标记中获取地名

Android 谷歌地图标记禁用导航选项

Android - 谷歌地图卡住了

在 Android 应用程序中加载谷歌地图太慢了