接下来,给大家写一下高德基本地图的实现继承过程:

在高德开发平台(官网)上下载相关SDK和Demon
第一个和第二个都可以,第一个2D,3D相关内容都有,第二个下载就是自己选择了,这里新手推荐第一个下载。


下载后解压3DMap,会生成一个jar包,先导入工程中。接下来就要生成一个自己的key值,这个key值每个人都是不一样的,且,一个工程对应唯一的一个key值,
点击控制台。

应用管理中,创建自己的应用


这里就自己填写就行,点击创建,添加新key


这里主要讲一下如何获取SHA1,比较简单的一种方法,打开cmd窗口

在弹出的控制台窗口中输入 cd .android 定位到 .android 文件夹。

继续在控制台输入命令。
debug.keystore:命令为:keytool -list -v -keystore debug.keystore
自定义的 keystore:命令为:keytool -list -v -keystore apk的keystore

提示输入密钥库密码,编译器提供的debug keystore默认密码是 android,自定义签名文件的密码请自行填写。输入密钥后回车(如果没设置密码,可直接回车),此时可在控制台显示的信息中获取 SHA1 值,如下图所示:

这里就得到SHA1了,提交自己的key值就好了,
3D地图才需要添加so库,2D地图无需这一步骤。因为我们解压的文件是3D,所以创建新文件
在 main 目录下创建文件夹 jniLibs (如果有就不需要创建了),将下载文件的 armeabi 文件夹复制到这个目录下,如果已经有这个目录,将下载的 so 库复制到这个目录即可。如图所示:

接下来就要在工程中写代码了:先配置权限:
-
- <uses-permission android:name="android.permission.INTERNET" />
-
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
-
- <uses-permission android:name="android.permission.READ_PHONE_STATE" />
-
- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
-
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
-
- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
-
- <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
-
- <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
添加自己的key值:
- <meta-data
- android:name="com.amap.api.v2.apikey"
- android:value="自己的key值"/>
在MainActivity中:
- package com.bwie.test.mybasemap;
-
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
-
- import com.amap.api.maps.AMap;
- import com.amap.api.maps.MapView;
-
- public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- MapView mapView = (MapView) findViewById(R.id.map);//找到地图控件
- //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
- mapView.onCreate(savedInstanceState);
- AMap aMap = mapView.getMap();//初始化地图控制器对象
- }
- }
在布局文件中:activity_main.xml:
- <com.amap.api.maps.MapView
- android:id="@+id/map"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- </com.amap.api.maps.MapView>
到这,高德的基本地图就继承完毕了,效果如下: