vue中实现高德定位功能

2020-06-12 20:51:43易采站长站整理

var geocoder = new AMap.Geocoder({
// city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
city: result.adcode
});

var lnglat = result.rectangle.split(";")[0].split(",");

geocoder.getAddress(lnglat, function(status, data) {
if (status === "complete" && data.info === "OK") {
// result为对应的地理位置详细信息
console.log(data);
self.userInfo.ProvinceName = data.regeocode.addressComponent.province.toString();
self.userInfo.CCityName =
data.regeocode.addressComponent.city;
self.userInfo.RegionName =
data.regeocode.addressComponent.district;
}
});
});
}
});
});
},
newGetAddress: function(latitude, longitude) {
const _thisSelf = this;
_thisSelf.locationData.lat = latitude;
_thisSelf.locationData.lon = longitude;
const mapObj = new AMap.Map("mapAmap1");
mapObj.plugin("AMap.Geocoder", function() {
const geocoder = new AMap.Geocoder({
city: "全国", // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
radius: 100 // 以已知坐标为中心点,radius为半径,返回范围内兴趣点和道路信息
});
const lnglat = [longitude, latitude]; // 倒序反写经纬度
// 天津120 北京110 上海310 重庆500 ,
const reg1 = /^[1][1][0][0-9][0-9][0-9]/;
const reg2 = /^[1][2][0][0-9][0-9][0-9]/;
const reg3 = /^[5][0][0][0-9][0-9][0-9]/;
const reg4 = /^[3][1][0][0-9][0-9][0-9]/;
geocoder.getAddress(lnglat, function(status, result) {
console.log("getAddress", result);
if (status === "complete" && result.info === "OK") {
// result为对应的地理位置详细信息
const adcode = result.regeocode.addressComponent.adcode; // 省市编码
if (
reg1.test(adcode) ||
reg2.test(adcode) ||
reg3.test(adcode) ||
reg4.test(adcode)
) {
_thisSelf.locationData.city =
result.regeocode.addressComponent.province;
} else {
_thisSelf.locationData.city =
result.regeocode.addressComponent.city;
}
// 提取 省 市 区 详细地址信息 重拼装省-市-区信息
_thisSelf.locationData.province =
result.regeocode.addressComponent.province;
_thisSelf.locationData.district =
result.regeocode.addressComponent.district;
_thisSelf.locationData.Address = result.regeocode.formattedAddress;
_thisSelf.locationData.nowPlace =
result.regeocode.addressComponent.province +
result.regeocode.addressComponent.city +
result.regeocode.addressComponent.district;
_thisSelf.userInfo.ProvinceName = _thisSelf.locationData.province;