1. 程式人生 > >Android 高德定位展示當前位置在地圖上

Android 高德定位展示當前位置在地圖上

第一步:加許可權

<!--允許程式開啟網路套接字-->
<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" />

第二步:新增配置

<service android:name="com.amap.api.location.APSService"></service>
<meta-data android:name="com.amap.api.v2.apikey" android:value="yourKey">
    //開發者申請的key
</meta-data>

第三步:程式碼設定

private void initMap() {
    if (mAMap == null) {
        mAMap = map.getMap();
    }
    myLocationStyle = new MyLocationStyle();//初始化定位藍點樣式類myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//連續定位、且將視角移動到地圖中心點,定位點依照裝置方向旋轉,並且會跟隨裝置移動。(1秒1次定位)如果不設定myLocationType,預設也會執行此種模式。
    myLocationStyle.interval(2000); //設定連續定位模式下的定位間隔,只在連續定位模式下生效,單次定位模式下不會生效。單位為毫秒。
    mAMap.setMyLocationStyle(myLocationStyle);//設定定位藍點的Style
    //aMap.getUiSettings().setMyLocationButtonEnabled(true);設定預設定位按鈕是否顯示,非必需設定。
    mAMap.setMyLocationEnabled(true);// 設定為true表示啟動顯示定位藍點,false表示隱藏定位藍點並不進行定位,預設是false。
    mAMap.moveCamera(CameraUpdateFactory.zoomTo(17));
    myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_FOLLOW);//連續定位、且將視角移動到地圖中心點,定位藍點跟隨裝置移動
}

佈局檔案:

<com.amap.api.maps2d.MapView
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    />