接下来,给大家写一下高德基本地图的实现继承过程:
![](https://img-blog.csdn.net/20171018103229930?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在高德开发平台(官网)上下载相关SDK和Demon
第一个和第二个都可以,第一个2D,3D相关内容都有,第二个下载就是自己选择了,这里新手推荐第一个下载。
![](https://img-blog.csdn.net/20171018103307530?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20171018103329790?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
下载后解压3DMap,会生成一个jar包,先导入工程中。接下来就要生成一个自己的key值,这个key值每个人都是不一样的,且,一个工程对应唯一的一个key值,
点击控制台。
![](https://img-blog.csdn.net/20171018103347013?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
应用管理中,创建自己的应用
![](https://img-blog.csdn.net/20171018103508885?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20171018103553576?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里就自己填写就行,点击创建,添加新key
![](https://img-blog.csdn.net/20171018103408499?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20171018103627681?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里主要讲一下如何获取SHA1,比较简单的一种方法,打开cmd窗口
![](https://img-blog.csdn.net/20171018103731844?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在弹出的控制台窗口中输入 cd .android 定位到 .android 文件夹。
![](https://img-blog.csdn.net/20171018103746321?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
继续在控制台输入命令。
debug.keystore:命令为:keytool -list -v -keystore debug.keystore
自定义的 keystore:命令为:keytool -list -v -keystore apk的keystore
![](https://img-blog.csdn.net/20171018103802602?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
提示输入密钥库密码,编译器提供的debug keystore默认密码是 android,自定义签名文件的密码请自行填写。输入密钥后回车(如果没设置密码,可直接回车),此时可在控制台显示的信息中获取 SHA1 值,如下图所示:
![](https://img-blog.csdn.net/20171018103841261?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里就得到SHA1了,提交自己的key值就好了,
3D地图才需要添加so库,2D地图无需这一步骤。因为我们解压的文件是3D,所以创建新文件
在 main 目录下创建文件夹 jniLibs (如果有就不需要创建了),将下载文件的 armeabi 文件夹复制到这个目录下,如果已经有这个目录,将下载的 so 库复制到这个目录即可。如图所示:
![](https://img-blog.csdn.net/20171018103942648?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNDA1NDE5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
接下来就要在工程中写代码了:先配置权限:
-
- <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>
到这,高德的基本地图就继承完毕了,效果如下: