• 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无误。

  • 相关阅读:
    Java中数据结构对应mysql数据类型
    pom.xml设置字符编码
    java.lang.IllegalStateException: Service id not legal hostname (/test-gw-aqa)
    org.springframework.context.ApplicationContextException: Unable to start web server; nested exceptio
    nacos的三种部署方式
    o.s.c.a.n.c.NacosPropertySourceBuilder : get data from Nacos error,dataId:application-dev.yaml
    java使用split注意事项
    《非暴力沟通》之读书心得
    js存储token
    SpringCloudGateWay之网关跨域问题解决
  • 原文地址:https://www.cnblogs.com/Sharley/p/9776575.html
Copyright © 2020-2023  润新知