本来项目里是地图初始化的时候精准定位当前位置getCurrentPosition,但是一直返回错误码定位Geolocation permission denied,联系了高德客服说浏览器禁止了非安全域的定位请求,需要升级站点到HTTPS。
修改域名有点麻烦,然后退而求其次用到了获取当前城市中心点位置;
先用AMap.CitySearch
插件获取城市信息拿到城市的city名称;
再用行政区查询服务(AMap.DistrictSearch
)提供行政区信息的查询,使用该服务可以获取到、中心点,拿到中心点的经纬度然后标记在地图上。
具体代码如下(前面的插件挂载没体现,具体可参照官方文档):
state.citySearch.getLocalCity(function (status, result) {
if (status === 'complete' && result.info === 'OK') {
var citybounds = result.bounds; //为了定位到所在城市
state.map.setBounds(citybounds); //地图显示当前城市
// 根据行政区信息获取当前城市中心点
state.districtSearch.search(result.city, function(status, result) {
state.mapForm.longitude = result.districtList[0].center.lng;
state.mapForm.latitude = result.districtList[0].center.lat;
addMarker();
})
}
})