Android集成Google地图详细步骤记录

先贴下Google官方的地图demo地址:https://github.com/googlemaps/android-samples

那么接下来第一步,申请Google的API key。

使用谷歌账号登录谷歌地图开发者平台(登录网站:https://cloud.google.com/maps-platform/?hl=zh-CN),点击控制台,如图

点击控制进入控制台进行如下操作,生成谷歌地图的appkey:

如果你没有项目时,需要先点击“创建”,新建你的项目后才能使用创建凭据。

点击API秘钥,生成秘钥,在生成的秘钥界面上我们点击秘钥限制,设置成android ,然后根据他提示的指令在cmd中获取SHA-1值填入,然后点击保存即可。(可不要真的输入"mystore.keystore"喔,根据你自己的需求输入"debug.keystore",或"release.keystore")

注意:Google说可能最长可能要5分钟才生效哒。

还有一点是要保证你的API已开启,未启动用时,请开启,如图示:

然后接下来在项目的modle的build.gradle中添加依赖:

    implementation 'com.google.android.gms:play-services-maps:12.0.1'
//    地图操作工具类,添加标记等
    implementation 'com.google.maps.android:android-maps-utils:0.5+'

在清单文件写上你的API KEY:

<meta-data   
 android:name="com.google.android.geo.API_KEY"    
android:value="google给你的 API KEY" />

 now,开始地图展示。

分为两种加载方式,一种是在activity中动态或者是静态加载我们的谷歌地图的fragment,进行显示:

布局:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" />

代码中:

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        double lat = 40.73;
        double lng = -73.99;
        LatLng appointLoc = new LatLng(lat, lng);

        // 移动地图到指定经度的位置
        googleMap.moveCamera(CameraUpdateFactory.newLatLng(appointLoc));

        //添加标记到指定经纬度
        googleMap.addMarker(new MarkerOptions().position(new LatLng(lat, lng)).title("Marker")
                .icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher)));


    }
}

另一种即直接使用mapView显示谷歌地图。

布局:

<com.google.android.gms.maps.MapView   
 android:id="@+id/mapview"        
android:layout_width="match_parent"
android:layout_height="match_parent" />

代码中:

 MapView mMap = (MapView) mView.findViewById(R.id.mapview); 
 mMap.onCreate(savedInstanceState);      
 mMap.onResume();       
 try {          
  MapsInitializer.initialize(this);    
 } catch (Exception e) {   
  e.printStackTrace();    
 }  
int errorCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if (ConnectionResult.SUCCESS != errorCode) {
GooglePlayServicesUtil.getErrorDialog(errorCode, this, 0).show(); } else { mMap.getMapAsync(this); }
    @Override
    public void onMapReady(GoogleMap googleMap) {
        double lat = 40.73;
        double lng = -73.99;
        LatLng appointLoc = new LatLng(lat, lng);

        // 移动地图到指定经度的位置
        googleMap.moveCamera(CameraUpdateFactory.newLatLng(appointLoc));

        //添加标记到指定经纬度
        googleMap.addMarker(new MarkerOptions().position(new LatLng(lat, lng)).title("Marker")
                .icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher)));


    }
 

OK,运行项目,这里就应该显示一张定位在纽约的地图了。

如果只显示了一行提示说设备不支持话,那么说明你需要在手机安装Google play服务,手机上的应用市场一般是不能直接安装的,可以先安装一个谷歌下载器,然后通过这个apk安装;

如果显示一片空白(应该只显示了Google地图的logo),那么检查你的网络是否翻墙成功,确认API开启,确认API key无误。

原文地址:https://www.cnblogs.com/Sharley/p/9776575.html