本来项目里是地图初始化的时候精准定位当前位置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();

                   })

                }

            })

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐