android: 高德地图

栏目: Android · 发布时间: 5年前

内容简介:分为地图,定位,搜索(我还没做导航功能)建议采用gradle方式集成在project/build.gradle文件下添加jcenter的仓库地址

分为地图,定位,搜索(我还没做导航功能)

建议采用gradle方式集成

添加依赖

在project/build.gradle文件下添加jcenter的仓库地址

allprojects {
    repositories {
        jcenter() // 或者 mavenCentral()
    }
 }

在app/build.gradle下添加依赖

android {
    defaultConfig {
        ndk {
            //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
            abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    //3D地图so及jar
    compile 'com.amap.api:3dmap:latest.integration'
    //定位功能
    compile 'com.amap.api:location:latest.integration'
    //搜索功能
    compile 'com.amap.api:search:latest.integration'
}

navi导航SDK 5.0.0以后版本包含了3D地图SDK,所以请不要同时引入 map3d 和 navi SDK。

添加权限

在AndroidManifest.xml文件下添加权限

<!--允许程序打开网络套接字-->
<uses-permission android:name="android.permission.INTERNET" />
<!--允许程序设置内置sd卡的写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
<!--允许程序获取网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<!--允许程序访问WiFi网络信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />     
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

添加高德key

如何获取key看这里 -> 点我查看Key注册时必要数据SHA1和包名的获取方法

建议同时设置debug和release状态下的key,方便App在debug模式下也能使用高德地图功能.

在app/build.gradle下设置两种key

android {
       buildTypes {
            debug {
              manifestPlacesholders = [
                      //左边的键MAP_API_KEY是自定义的名字,右边的debug-key-value是你申请的debug下的key值
                    "MAP_API_KEY" : "debug-key-value"
               ]
            }
            
            release{
            manifestPlacesholders = [
                      //左边的键MAP_API_KEY要和debug下的保持一致,右边的release-key-value是你申请的release下的key值
                    "MAP_API_KEY" : "release-key-value"
               ]
            }
       }
  }

在AndroidManifest.xml中添加key

<application>
    <meta-data
            android:name="com.amap.api.v2.apikey"
            //要和app/build.gradle文件中设置的保持一致
            android:value="${MAP_API_KEY}"/>
  </application>

使用地图

在布局中引入地图MapView

// R.layout.activity_your_activity
  <com.amap.api.maps.MapView

    android:id="@+id/map"

    android:layout_width="match_parent"

    android:layout_height="match_parent"/>

管理地图的生命周期(非常重要),以Activity为例

public class YourActivity extends AppcompatActivity{

     MapView mMapView = null;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_your_activity);
    //获取地图控件引用
    mMapView = (MapView) findViewById(R.id.map);
    //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
    mMapView.onCreate(savedInstanceState);
  }
  @Override
  protected void onDestroy() {
    super.onDestroy();
    //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
    mMapView.onDestroy();
  }
 @Override
 protected void onResume() {
    super.onResume();
    //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
    mMapView.onResume();
    }
 @Override
 protected void onPause() {
    super.onPause();
    //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
    mMapView.onPause();
    }
 @Override
 protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
    mMapView.onSaveInstanceState(outState);
  } 

}

构造一个AMap对象

if(mAMap == null){
   mAMap = mapView.getMap();
  }

初始化地图的相关属性

  • 地图缩放级别
mAMap.animateCamera(CameraUpdateFactory.zoomTo(float zoomLevel));

显示定位蓝点

未完待续


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

BSD Hacks

BSD Hacks

Dru Lavigne / O'Reilly Media, Inc. / 2004-05-24 / USD 24.95

If you want more than your average BSD user--you want to explore and experiment, unearth shortcuts, create useful tools, and come up with fun things to try on your own--BSD Hacks is a must-have. This ......一起来看看 《BSD Hacks》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具