美文网首页
Android 第三方 SDK 之 高德地图(一)

Android 第三方 SDK 之 高德地图(一)

作者: Kevin_小飞象 | 来源:发表于2020-07-08 19:38 被阅读0次

    简介

    高德地图 Android SDK 是一套地图开发调用接口,开发者可以轻松地在自己的Android应用中加入地图相关的功能,包括:地图显示(含室内、室外地图)、与地图交互、在地图上绘制、兴趣点搜索、地理编码、离线地图等功能。

    获取高德 Key

    点我获取Key>>
    如何申请 Key>>

    前期准备

    1. 下载并解压
      高德地图SDK - 开发包定制下载

    2. 向工程中添加地图开发包
      2.1 添加 so 文件,在 src/main/ 目录下新建 jniLibs 目录,并将文件放入其中。


      1.png

    2.2 将 jar 包放入 libs 目录下。然后 右键-选择 Add As Library,导入到工程中。


    2.png

    简单开发

    1. 配置 AndroidManifest.xml
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.gyq.mapdemo">
    
        <!--允许程序打开网络套接字-->
        <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" />
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
            <meta-data android:name="com.amap.api.v2.apikey"
                android:value="高德key">
            </meta-data>
        </application>
    
    </manifest>
    
    1. 布局文件
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <com.amap.api.maps.MapView
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    
    </LinearLayout>
    
    1. MainActivity.java
    public class MainActivity extends AppCompatActivity {
        private MapView mMapView;
        private AMap mAMap;
        private MyLocationStyle mLocationStyle;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mMapView = findViewById(R.id.map);
            mMapView.onCreate(savedInstanceState);
            if (mAMap == null) {
                mAMap = mMapView.getMap();
            }
            mAMap.getUiSettings().setZoomControlsEnabled(false);
            mAMap.moveCamera(CameraUpdateFactory.zoomTo(15));
            mAMap.setMapTextZIndex(2);
    
    
            mLocationStyle = new MyLocationStyle();
            mLocationStyle.interval(2000);
            mLocationStyle.showMyLocation(true);
            mAMap.setMyLocationStyle(mLocationStyle);
            mAMap.setMyLocationEnabled(true);
    
            mAMap.setOnMyLocationChangeListener(new AMap.OnMyLocationChangeListener() {
                @Override
                public void onMyLocationChange(Location location) {
                    double lat = location.getLatitude();
                    double lng = location.getLongitude();
    
                    Log.e("duo", "onMyLocationChange: lat=" + lat + "|lng=" + lng);
                }
            });
        }
    
        @Override
        protected void onSaveInstanceState(Bundle outState) {
            super.onSaveInstanceState(outState);
            mMapView.onSaveInstanceState(outState);
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            mMapView.onResume();
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            mMapView.onPause();
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            mMapView.onDestroy();
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Android 第三方 SDK 之 高德地图(一)

          本文链接:https://www.haomeiwen.com/subject/fqgtcktx.html