介紹
調用 new mapPlus.GeolocateControl(options),開始使用地圖定位功能。
調用 new mapPlus.GeolocateControl(options),開始使用地圖定位功能。
開始使用
- options
(object):選填,地圖定位的參數。
| 參數 | 描述 |
|---|---|
options.trackUserLocation boolean | 選填,是否監視使用者的位置是否變更,預設為 false。 |
options.cameraUpdateRule 'force'、'initial'、'none' | 選填,鏡頭更新規則。'force' 為強制固定在使用者的位置,使用此設定,trackUserLocation 會自動設為 true;'initial' 為首次取得使用者位置並滑動至該位置;'none' 不會主動滑動至使用者位置。預設為 'initial'。 |
options.positionOptions object | 選填,位置設定,使用詳情請參考 Geolocation PositionOptions。 |
options.customizeMarker Marker | 選填,使用客製化 Marker 做為定位標示,詳情參考地標,預設為 null。 |
options.showAccuracyCircle boolean | 選填,是否顯示定位精度範圍,預設為 true。 |
範例
// 新增 GeolocateControlconst geolocateCtrl = new mapPlus.GeolocateControl({ positionOptions: { // 使用高精度定位 enableHighAccuracy: true, },});map.addControl( geolocateCtrl , 'bottom-right' );
// 地圖讀取完畢,即開始定位map.on( 'style.load' , () => geolocateCtrl.trigger() );鏡頭更新規則
options.cameraUpdateRule 為鏡頭更新規則設定,可設定為以下三種:
| 規則 | 描述 |
|---|---|
'force' | 強制固定在使用者的位置,使用此設定,trackUserLocation 會自動設為 true。 |
'initial' | 首次取得使用者位置並滑動至該位置,為預設。 |
'none' | 鏡頭不會主動滑動至使用者位置。 |
force
強制固定在使用者的位置。
// 新增 GeolocateControlconst geolocateCtrl = new mapPlus.GeolocateControl({ cameraUpdateRule: 'force',});map.addControl( geolocateCtrl , 'bottom-right' );
// 地圖讀取完畢,即開始定位map.on( 'style.load' , () => geolocateCtrl.trigger() );initial
首次取得使用者位置並滑動至該位置。
// 新增 GeolocateControlconst geolocateCtrl = new mapPlus.GeolocateControl({ cameraUpdateRule: 'initial',});map.addControl( geolocateCtrl , 'bottom-right' );
// 地圖讀取完畢,即開始定位map.on( 'style.load' , () => geolocateCtrl.trigger() );none
鏡頭不會主動滑動至使用者位置。
// 新增 GeolocateControlconst geolocateCtrl = new mapPlus.GeolocateControl({ cameraUpdateRule: 'none',});map.addControl( geolocateCtrl , 'bottom-right' );
// 地圖讀取完畢,即開始定位map.on( 'style.load' , () => geolocateCtrl.trigger() );顯示定位精度範圍
options.showAccuracyCircle 可設是否顯示定位的精度範圍,預設為 true。
// 新增 GeolocateControlconst geolocateCtrl = new mapPlus.GeolocateControl({ // 關閉精度範圍 showAccuracyCircle: false,});map.addControl( geolocateCtrl , 'bottom-right' );
// 地圖讀取完畢,即開始定位map.on( 'style.load' , () => geolocateCtrl.trigger() );客製化定位標示
options.customizeMarker 使用客製化 Marker 做為定位標示,預設為 null。
// 建立 Markerconst marker = new mapPlus.Marker({ icon: 'https://kw3dmap.localking.com.tw/favicon.ico',});
// 新增 GeolocateControlconst geolocateCtrl = new mapPlus.GeolocateControl({ positionOptions: { enableHighAccuracy: true, }, cameraUpdateRule: 'force', // 設定客製化定位標示 customizeMarker: marker,});map.addControl( geolocateCtrl , 'bottom-right' );
// 地圖讀取完畢,即開始定位map.on( 'style.load' , () => geolocateCtrl.trigger() );