AMap.Geocoder is not a constructor
按坑爹的高德这个实例代码,报这个错误。
在前面需要加载AMap.Geocoder
,如下代码
AMap.service("AMap.Geocoder", function(){
var geocoder = new AMap.Geocoder({
radius: 1000,
extensions: "all",
city: "010"
});
geocoder.getAddress([116.396574, 39.992706], function(status, result) {
if (status === 'complete' && result.info === 'OK') {
console.log(result)
}
});
})
这样就加载了Geocoder
(这个绝非水贴, 百度前十页绝对没有答案~~,有也是回答错误。)
--问题解决--
然后发现并无法走入回掉。
在ok之前打印result, 发现值是USERKEY_PLAT_NOMATCH
这个错误倒是可以百度到, 是错误代码。
这个功能属于 Web端, 不是web服务,重新生成key,即可
错误信息列表
http://lbs.amap.com/api/javascript-api/reference/errorcode/
话说都写到这里了,我也水一下, 附上完整定位函数代码
gpsData: function(data){
return data || false
},
getGps: function(callback){
if(this.gpsData()){
return this.gpsData()
}
let self = this
var map, geolocation;
//加载地图,调用浏览器定位服务
map = new AMap.Map('container', {
resizeEnable: true
});
map.plugin('AMap.Geolocation', function() {
geolocation = new AMap.Geolocation({
enableHighAccuracy: true,//是否使用高精度定位,默认:true
timeout: 10000, //超过10秒后停止定位,默认:无穷大
buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
zoomToAccuracy: true, //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
buttonPosition:'RB'
});
map.addControl(geolocation);
geolocation.getCurrentPosition();
AMap.event.addListener(geolocation, 'complete', c);//返回定位信息
AMap.event.addListener(geolocation, 'error', c); //返回定位出错信息
});
function c(data){
self.gpsData(data)
callback(data)
}
}
--END--