最新基于高德地图的android进阶开发(2)小试牛刀

时间:2021-06-26 03:30:55

1、如果你是一个新的开发者,还没有MAP key,可以参考上一篇文章最新基于高德地图的android进阶开发(1),上一篇说到下载地图SDK,选择的是一键下载,下载完后解压,包含文件如下图中所示,第一次解压是三个压缩包,还有一个demo文件夹,进一步解压会出现下面所示的jar开发包。

最新基于高德地图的android进阶开发(2)小试牛刀

2.上面下载的SDK,主要包括下面的功能,1.3D地图,2.2D地图 ,3.搜索服务。相关API连接:http://a.amap.com/lbs/static/unzip/Android_Map_Doc/index.html与android studio开发结合进行android 开发,在android studio中添加第三方JAR包的方法,下面以地图开发为例,将jar包复制到android应用的app/libs/目录下,切换成project面板,然后选中这两个jar包点击右键,选择add As library,这样就将jar加到了应用中。

3.添加.so文件的方法,至少有两种方式,下图显示方式1

最新基于高德地图的android进阶开发(2)小试牛刀

下面展示方式2,将arm64-v8a 和armeabi放到libs下,并配置build gradel文件,如下图中所示

最新基于高德地图的android进阶开发(2)小试牛刀

下面是build gradel文件

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
//注意下面是必须的

sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
defaultConfig {
applicationId "com.dragon.arnav"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}



dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile files('libs/AMap_3DMap_V3.3.2_20160525.jar')
compile files('libs/AMap_Search_V3.3.0_20160616.jar')
compile files('libs/AMap_2DMap_V2.9.0_20160525.jar')
}

3.配置权限和相应有的key ,下面显示androidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dragon.arnav">

<!--添加对应有权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />



<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">

<!--启动高德地图服务,下面的value不要照着输入,请输入你申请是的apikey value-->
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="fc5d4be7c65a05064dd552395ae46bdb"/>

<!--android:configChanges="orientation|keyboardHidden|screenSize"这句是支持横竖屏切换,要求系统4.0以上-->
<activity android:name=".Main"
android:configChanges="orientation|keyboardHidden|screenSize">


<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

4.所有的文件和权限弄完后,下面开始布局文件,main.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.dragon.arnav.Main">

<!--使用高德地图提供的Map View-->
<com.amap.api.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

<ToggleButton
android:id="@+id/tb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:textOn="卫星地图"
android:textOff="普通地图"
android:checked="false"/>


</FrameLayout>

5.hello map,主要代码main.java

package com.dragon.arnav;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.ToggleButton;

import com.amap.api.maps.AMap;
import com.amap.api.maps.MapView;

public class Main extends AppCompatActivity {
private MapView mapView;
private AMap aMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.map);
// 必须回调MapView的onCreate()方法
mapView.onCreate(savedInstanceState);
init();
ToggleButton tb = (ToggleButton) findViewById(R.id.tb);
tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
if(isChecked){
aMap.setMapType(AMap.MAP_TYPE_SATELLITE);
} else
{
aMap.setMapType(AMap.MAP_TYPE_NORMAL);
}
}
});
}

//初始化AMap对象
private void init(){
if(aMap ==null){
aMap = mapView.getMap();
}
}
@Override
protected void onResume(){
super.onResume();
mapView.onResume();
}
@Override
protected void onPause(){
super.onPause();
mapView.onPause();
}
@Override
protected void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
@Override
protected void onDestroy(){
super.onDestroy();
mapView.onDestroy();
}
}

6.完成效果图预览

最新基于高德地图的android进阶开发(2)小试牛刀


7.欢迎大家加入AR、VR开发群和关注AR引路人公众号

最新基于高德地图的android进阶开发(2)小试牛刀最新基于高德地图的android进阶开发(2)小试牛刀