7 changed files with 190 additions and 23 deletions
@ -0,0 +1,106 @@ |
|||
extends /layouts/root.pug |
|||
|
|||
block $$head |
|||
script. |
|||
window._AMapSecurityConfig = { |
|||
securityJsCode: "3cdaa3ebcf936fb3d7f4feff592b4daf" |
|||
} |
|||
+js("https://webapi.amap.com/maps?v=2.0&key=28fdbb4bfc3894850769251331f54569&plugin=AMap.Geolocation&plugin=AMap.CitySearch") |
|||
block $$content |
|||
div sadsa |
|||
|
|||
block $$scripts |
|||
script. |
|||
//- console.log("342") |
|||
// 确保在 API 加载完成后执行 |
|||
//- window.onLoad = function() { |
|||
|
|||
AMap.plugin('AMap.CitySearch', function () { |
|||
var citySearch = new AMap.CitySearch() |
|||
citySearch.getLocalCity(function (status, result) { |
|||
console.log(status, result) |
|||
if (status === 'complete' && result.info === 'OK') { |
|||
// 查询成功,result即为当前所在城市信息 |
|||
} |
|||
}) |
|||
}) |
|||
console.log("onLoad") |
|||
// 1. 创建 Geolocation 实例 |
|||
var geolocation = new AMap.Geolocation({ |
|||
enableHighAccuracy: true, // 开启高精度定位 |
|||
timeout: 10000, // 超时时间10秒 |
|||
maximumAge: 0, // 不缓存定位结果 |
|||
convert: true, // 强制开启坐标转换(关键!确保WGS-84转GCJ-02) |
|||
needAddress: true, // 强制返回转换后的地址信息(辅助验证转换结果) |
|||
showButton: false, // 隐藏定位按钮 |
|||
showMarker: false, // 不显示定位点 |
|||
showCircle: false, // 不显示精度圈 |
|||
panToLocation: false, // 不移动地图视野 |
|||
zoomToAccuracy: false // 不调整地图缩放 |
|||
}); |
|||
|
|||
console.log(geolocation) |
|||
// 2. 调用定位方法 |
|||
geolocation.getCurrentPosition(function(status,result){ |
|||
if(status=='complete'){ |
|||
onComplete(result) |
|||
}else{ |
|||
onError(result) |
|||
} |
|||
}); |
|||
//- function onComplete (data) { |
|||
//- console.log(data) |
|||
//- } |
|||
|
|||
//- function onError (data) { |
|||
//- console.log(data) |
|||
//- } |
|||
// 3. 监听定位成功事件 |
|||
//- AMap.event.addListener(geolocation, 'complete', onComplete); |
|||
|
|||
// 4. 监听定位失败事件 |
|||
//- AMap.event.addListener(geolocation, 'error', onError); |
|||
//- }; |
|||
|
|||
/** |
|||
* 定位成功回调函数 |
|||
* @param {Object} data - 定位结果对象 |
|||
*/ |
|||
function onComplete(data) { |
|||
console.log("定位成功:", data); |
|||
const result = { |
|||
经度: data.position.lng, |
|||
纬度: data.position.lat, |
|||
精度: data.accuracy + ' 米', |
|||
地址: data.formattedAddress || '无', |
|||
//- 城市: data.addressComponent.city || '无', |
|||
状态: '成功' |
|||
}; |
|||
console.log("解析后的定位信息:", result); |
|||
// 在这里处理你的定位结果 |
|||
} |
|||
|
|||
/** |
|||
* 定位失败回调函数 |
|||
* @param {Object} data - 失败信息对象 |
|||
*/ |
|||
function onError(data) { |
|||
console.error("定位失败:", data); |
|||
let errorMsg = '未知错误'; |
|||
switch(data.info) { |
|||
case 'PERMISSION_DENIED': |
|||
errorMsg = '用户拒绝了定位请求。'; |
|||
break; |
|||
case 'POSITION_UNAVAILABLE': |
|||
errorMsg = '无法获取当前位置。'; |
|||
break; |
|||
case 'TIMEOUT': |
|||
errorMsg = '定位请求超时。'; |
|||
break; |
|||
case 'UNKNOW_ERROR': |
|||
errorMsg = '发生未知错误。'; |
|||
break; |
|||
} |
|||
console.error("错误详情:", errorMsg); |
|||
// 在这里处理定位失败的情况 |
|||
} |
|||
Loading…
Reference in new issue