智能客服
你问我答,随时在线为你解决问题
此版本文档已归档不再维护,推荐您使用最新版本。
本教程将从最基本的环境配置开始,帮助您尽快将Android应用程序从Google Map SDK for Android切换到Map Kit提供的SDK for Android。除此之外,还提供了一些基本用例,如创建地图、添加标记等。在总结部分,我们提供了自动化工具的获取链接,该工具可以帮助您完成手动切换的工作。
集成HUAWEI Map Kit能力,需要完成以下准备工作:
创建AppGallery Connect应用
创建Android Studio工程
生成签名证书以及签名证书指纹
在AppGallery Connect上配置签名证书指纹
集成HMS SDK
配置项目签名
具体操作,请按照《HUAWEI HMS Core集成准备》中详细说明来完成。
本小节内容将介绍使用Google和HUAWEI Map Kit创建地图的步骤。
1. 将编译依赖添加到模块的build.gradle文件中:
- implementation 'com.google.android.gms:play-services-maps:15.0.0'
2. 在Activity的布局文件中添加加一个fragment:
- <fragment
- android:id="@+id/mapFragment"
- android:name="com.google.android.gms.maps.MapFragment"
- android:layout_width="match_parent"
- android:layout_height="match_parent"/>
3. 在manifest.xml文件的application部分内添加一个Google Android API密钥:
- <meta-data
- android:name="com.google.android.geo.API_KEY"
- android:value="YOUR_GOOGLE_KEY_GOES_HERE"/>
1. 将编译依赖添加到模块的build.gradle文件中:
- implementation 'com.huawei.hms:maps:4.0.1.301'
2. 在Activity的布局文件中添加加一个fragment:
- <fragment
- xmlns:map="http://schemas.android.com/apk/res-auto"
- android:id="@+id/mapfragment_mapfragmentdemo"
- class="com.huawei.hms.maps.MapFragment"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- map:cameraTargetLat="48"
- map:cameraTargetLng="118"/>
本小节内容将介绍使用Google和HUAWEI Map Kit添加标记的步骤。
1. 定义一个GoogleMap对象和一个MapFragment对象:
- private GoogleMap gMap;
- private MapFragment mapFragment;
2. 实现OnMapReadyCallback接口,并重写onMapReady方法:
- @Override
- public void onMapReady(GoogleMap googleMap) {
- gMap = googleMap;
- LatLng amsterdam = new LatLng(52.37, 4.90);
- gMap.addMarker(new MarkerOptions().position(amsterdam).title("Amsterdam"));
- gMap.animateCamera(CameraUpdateFactory.newLatLngZoom(amsterdam, 8));
- }
3. 在Activity的onCreate方法中加载MapFragment,并调用getMapAsync():
- mapFragment = (MapFragment)getFragmentManager().findFragmentById(R.id.mapFragment);
- mapFragment.getMapAsync(this);
1. 定义一个HuaweiMap对象和一个MapFragment对象:
- private HuaweiMap hMap;
- private MapFragment mMapFragment;
2. 实现OnMapReadyCallback接口,并重写onMapReady方法:
- @Override
- public void onMapReady(HuaweiMap map) {
- // after call getMapAsync method ,we can get HuaweiMap instance in this callback method
- hMap = map;
- hMap.addMarker(new MarkerOptions().position(new LatLng(31.2304, 121.4737)).icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher_background)));
- hMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(31.2304, 121.4737), 10));
- }
3. 在Activity的onCreate方法中加载MapFragment,并调用getMapAsync():
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_map_fragment_demo);
- mMapFragment = (MapFragment)getFragmentManager().findFragmentById(R.id.mapfragment_mapfragmentdemo);
- mMapFragment.getMapAsync(this);
- }
如果您使用v2版本的Google Map SDK for Android,切换到Map Kit,需要将包名com.google.android.gms.maps替换成com.huawei.hms.maps;如果您使用v3版本的Google Map SDK for Android,切换到Map Kit,需要将包名com.google.android.libraries.maps替换成com.huawei.hms.maps(替换包名可以使用Android Studio的Edit > Find > Replace in Path…)。
上述内容是介绍了Google Map与Map Kit的异同,我们提供了自动化工具来高效完成从Google Map切换到Map Kit或者添加Map Kit的步骤,下面是关于工具的介绍以及使用指导: