javaScriptWeb前端之路WEB前端程序开发

逆向地址编码

2018-01-25  本文已影响60人  反者道之动001

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--

上一篇下一篇

猜你喜欢

热点阅读