百度智能小程序API 位置

2020-08-12 16:02 更新

獲取位置


getLocation

解釋: 獲取當前的地理位置、速度。當用戶離開智能小程序后,此接口無法調(diào)用。

參數(shù): Object

Object 參數(shù)說明:

參數(shù) 類型 必填 說明
type String 默認為 wgs84 返回 gps 坐標,可選 gcj02
success Function 接口調(diào)用成功的回調(diào)函數(shù),返回內(nèi)容詳見返回參數(shù)說明。
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

success 返回參數(shù)說明:

參數(shù) 說明
latitude 緯度,浮點數(shù),范圍為-90~90,負數(shù)表示南緯
longitude 經(jīng)度,浮點數(shù),范圍為-180~180,負數(shù)表示西經(jīng)
speed 速度,浮點數(shù),單位m/s
accuracy 位置的精確度
altitude 高度,單位 m
verticalAccuracy 垂直精度,單位 m(Android 無法獲取,返回 0)
horizontalAccuracy 水平精度,單位 m

示例:

swan.getLocation({
    type: 'gcj02',
    success: function (res) {
        console.log("緯度:" + res.latitude);
        console.log("經(jīng)度:" + res.longitude);
    },
    fail: function (err) {
        console.log("錯誤碼:" + err.errCode);
        console.log("錯誤信息:" + err.errMsg);
    }
});

查看位置


openLocation

解釋: 使用手百內(nèi)置地圖查看位置。

參數(shù): Object??Object 參數(shù)說明:

參數(shù) 類型 必填 說明
latitude Float 緯度,范圍為 -90~90,負數(shù)表示南緯
longitude Float 經(jīng)度,范圍為 -180~180,負數(shù)表示西經(jīng)
scale INT 縮放比例,范圍 4~21,默認為16

示例:

swan.getLocation({  
    type: 'gcj02',
    success: function (res) {
        swan.openLocation({
            latitude: res.latitude,
            longitude: res.longitude,
            scale: 18
        })
    },
    fail: function (err) {
        console.log("錯誤碼:" + err.errCode);
        console.log("錯誤信息:" + err.errMsg);
    }
});

地圖組件控制


createMapContext

解釋: 創(chuàng)建并返回 map 上下文 mapContext 對象。在自定義組件下,第二個參數(shù)傳入組件實例 this,以操作組件內(nèi) <map/> 組件。mapContext 通過 mapId 跟一個 組件綁定,通過它可以操作對應的 組件。

參數(shù): mapId

mapContext 對象的方法列表:

方法 參數(shù) 說明
getCenterLocation OBJECT 獲取當前地圖中心的經(jīng)緯度,返回的是 gcj02 坐標系,可以用于 swan.openLocation
moveToLocation 將地圖中心移動到當前定位點,需要配合 map 組件的 show-location 使用
translateMarker OBJECT 平移 marker,帶動畫
includePoints OBJECT 縮放視野展示所有經(jīng)緯度
getRegion OBJECT 獲取當前地圖的視野范圍
getScale OBJECT 獲取當前地圖的縮放級別

getCenterLocation 的 Object 參數(shù)列表:

參數(shù)名 類型 必填 說明
success Function 接口調(diào)用成功的回調(diào)函數(shù) ,res = { longitude: “經(jīng)度”, latitude: “緯度”}
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

translateMarker 的 Object 參數(shù)列表:

參數(shù)名 類型 必填 說明
markerId Number 指定 marker
destination Object 指定marker移動到的目標點
autoRotate Boolean 移動過程中是否自動旋轉(zhuǎn) marker
rotate Number marker 的旋轉(zhuǎn)角度
duration duration 動畫持續(xù)時長,默認值1000ms,平移與旋轉(zhuǎn)分別計算
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)

includePoints 的 OBJECT 參數(shù)列表:

參數(shù)名 類型 必填 說明
points Array 要顯示在可視區(qū)域內(nèi)的坐標點列表,[{latitude, longitude}]
padding Array 坐標點形成的矩形邊緣到地圖邊緣的距離,單位像素。格式為[上,右,下,左],安卓上只能識別數(shù)組第一項,上下左右的 padding 一致。開發(fā)者工具暫不支持 padding 參數(shù)。

getRegion 的 OBJECT 參數(shù)列表:

參數(shù)名 類型 必填 說明
success Function 接口調(diào)用成功的回調(diào)函數(shù),res = {southwest, northeast},西南角與東北角的經(jīng)緯度
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

getScale 的 OBJECT 參數(shù)列表:

參數(shù)名 類型 必填 說明
success Function 接口調(diào)用成功的回調(diào)函數(shù),res = {scale}
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

示例:

<view class="wrap">
    <map id="myMap"
        style="width: 100%"
    </map>
	<button type="primary" bindtap="getCenterLocation">獲取位置</button>
	<button type="primary" bindtap="moveToLocation">移動位置</button>
	<button type="primary" bindtap="translateMarker">移動標注</button>
	<button type="primary" bindtap="includePoints">縮放視野展示所有經(jīng)緯度</button>
	<button type="primary" bindtap="getRegion">獲取當前地圖的視野范圍</button>
</view>
Pages({
    data: {
        latitude: '40.042500',
        longitude: '116.274040',
    },
    onReady() {
        this.mapContext = swan.createMapContext('myMap');
    },
    getCenterLocation: function () {
        this.mapContext.getCenterLocation({
            success: function (res) {
                console.log("經(jīng)度" + res.longitude);
                console.log("緯度" + res.latitude);
            }
        })
    },
    moveToLocation: function () {
        this.mapContext.moveToLocation();
    },
    translateMarker: function () {
        this.mapContext.translateMarker({
            markerId: 0,
            autoRotate: true,
            duration: 1000,
            destination: {
                latitude: 23.10229,
                longitude: 113.3345211,
            },
            animationEnd() {
                console.log('animation end');
            }
        })
    },
    includePoints: function () {
        this.mapContext.includePoints({
            padding: [10],
            points: [{
                latitude: 23,
                longitude: 113.33,
            }, {
                latitude: 23,
                longitude: 113.3345211,
            }]
        })
    },
    getRegion: function () {
        this.mapContext.getRegion({
            success: function (res) {
                console.log("西南角的經(jīng)緯度" + res.southwest);
                console.log("東北角的經(jīng)緯度" + res.northeast);
            }
        })
    }
});
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號