112 lines
3.2 KiB
JavaScript
112 lines
3.2 KiB
JavaScript
// 获取定位, 返回 经纬度
|
||
export function getLocal(mapContext) {
|
||
return new Promise((resolve, reject) => {
|
||
mapContext.plugin('AMap.Geolocation', function () {
|
||
let geolocation = new AMap.Geolocation({
|
||
enableHighAccuracy: true, // 是否使用高精度定位,默认:true
|
||
timeout: 10000, // 设置定位超时时间,默认:无穷大
|
||
offset: [10, 20], // 定位按钮的停靠位置的偏移量
|
||
zoomToAccuracy: true, // 定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
|
||
position: 'RB' // 定位按钮的排放位置, RB表示右下
|
||
})
|
||
|
||
geolocation.getCurrentPosition(function(status, result){
|
||
if(status == 'complete'){
|
||
resolve(result.position)
|
||
}else{
|
||
reject(result)
|
||
}
|
||
});
|
||
})
|
||
})
|
||
}
|
||
|
||
// 逆地址解析,根据经纬度获取详细地址
|
||
export function getAddress(mapContext, lnglat) {
|
||
return new Promise((resolve, reject) => {
|
||
mapContext.plugin('AMap.Geocoder', function () {
|
||
let geocoder = new AMap.Geocoder({
|
||
// city: "010", //城市设为北京,默认:“全国”
|
||
});
|
||
|
||
geocoder.getAddress(lnglat, function(status, result) {
|
||
if (status === 'complete' && result.info === 'OK') {
|
||
// result为对应的地理位置详细信息
|
||
resolve(result)
|
||
} else {
|
||
console.log(result)
|
||
alert(JSON.stringify(result))
|
||
reject(result)
|
||
}
|
||
})
|
||
})
|
||
})
|
||
}
|
||
|
||
// 输入提示
|
||
export function searchFun(mapContext, cityCode, keyword) {
|
||
return new Promise((resolve) => {
|
||
mapContext.plugin('AMap.AutoComplete', function(){
|
||
var autoOptions = {
|
||
city: cityCode || '全国',
|
||
};
|
||
// 实例化AutoComplete
|
||
var autoComplete= new AMap.AutoComplete(autoOptions);
|
||
// 根据关键字进行搜索
|
||
autoComplete.search(keyword, function(status, result) {
|
||
// 搜索成功时,result即是对应的匹配数据
|
||
if(result.info == 'OK') {
|
||
resolve(result.tips)
|
||
} else {
|
||
resolve([])
|
||
}
|
||
})
|
||
})
|
||
})
|
||
}
|
||
|
||
// 路径规划
|
||
export function getRoad( mapContext, startLng, startLat, endLng, endLat ) {
|
||
return new Promise((resolve, reject) => {
|
||
mapContext.plugin('AMap.Driving', function() {
|
||
let driving = new AMap.Driving({
|
||
// 驾车路线规划策略,AMap.DrivingPolicy.LEAST_TIME是最快捷模式
|
||
// policy: AMap.DrivingPolicy.LEAST_TIME,
|
||
// map: mapContext
|
||
})
|
||
|
||
let startLngLat = [startLng, startLat]
|
||
let endLngLat = [endLng, endLat]
|
||
|
||
driving.search(startLngLat, endLngLat, function (status, result) {
|
||
// 未出错时,result即是对应的路线规划方案
|
||
if (status === 'complete') {
|
||
resolve(result)
|
||
} else {
|
||
reject(result)
|
||
}
|
||
})
|
||
})
|
||
})
|
||
}
|
||
|
||
|
||
/*
|
||
function drawRoute(route, map) {
|
||
let path = parseRouteToPath(route)
|
||
|
||
let routeLine = new AMap.Polyline({
|
||
path: path,
|
||
isOutline: true,
|
||
outlineColor: '#ffeeee',
|
||
borderWeight: 2,
|
||
strokeWeight: 5,
|
||
strokeOpacity: 0.9,
|
||
strokeColor: '#0091ff',
|
||
lineJoin: 'round'
|
||
})
|
||
|
||
map.add(routeLine);
|
||
}
|
||
*/
|