高德地图AMap.LngLat对象,与经纬度数组可以通用[116.258446,37.686622]

节选代码:

                                    var lnglat = [location['lng'], location['lat']];
                                    var gps = bd09towgs84(location['lng'], location['lat']);
                                    $("#longitude").val(gps[0]);
                                    $("#latitude").val(gps[1]);
                                    //console.log(gps);
                                    // 将其他坐标系的坐标点转换为高德坐标系。
                                    // AMap.convertFrom(lnglat:LngLat|Array.<LngLat>, type:String,
                                    // function(status:String,result:info/ConvertorResult))
                                    // ConvertorResult 对象
                                    // info        String           成功状态文字描述
                                    // locations   Array.<LngLat>   返回高德坐标集合
                                    AMap.convertFrom(lnglat, "baidu", function(status, result){
                                        if ("complete"===status) {
                                            // result.info相当于result['info']
                                            // console.log("状态"+status+"结果"+result+result.info+result['locations']);
                                            lnglat = result['locations'][0];// 因为result['locations']是Array.<LngLat>数组,所以需要取第[0]个值
                                            // 删除地图上所有的覆盖物
                                            map.clearMap();
                                            // console.log(lnglat);
                                            // map.setCenter([116.39,39.9]); //数组方式和LngLat对象都行,但不是说两者相同
                                            // map.setCenter(lnglat);
                                            var marker = new AMap.Marker({
                                                position: lnglat,//marker所在的位置
                                                map:map//创建时直接赋予map属性
                                            });
                                            // 根据地图上添加的覆盖物分布情况,自动缩放地图到合适的视野级别,
                                            // 参数overlayList默认为当前地图上添加的所有覆盖物图层
                                            map.setFitView();
                                        }
                                    });


最初我是通过数组形式定义lnglat:

var lnglat = [location['lng'], location['lat']];


但实际上AMap.convertFrom函数的输入参数是LngLat对象:

AMap.convertFrom(lnglat:LngLat|Array.<LngLat>, type:String,

function(status:String,result:info/ConvertorResult))


将其他地图服务商的坐标批量转换成高德地图经纬度坐标。最多支持40对坐标。

type用于说明是哪个服务商的坐标,可选值有:

gps:GPS原始坐标;

baidu:百度经纬度;

mapbar:图吧经纬度;

AMap.LngLat(lng:Number,lat:Number)

构造一个地理坐标对象,lng、lat分别代表经度、纬度值

包括map.setCenter函数也支持两种输入方式:

map.setCenter([116.39,39.9]); //数组方式和LngLat对象都行,但不是说两者相同
map.setCenter(lnglat);

getCenter( )

LngLat

获取地图中心点经纬度坐标值。


我不清楚之前写的代码是根据哪个例子写的,但是用数组代表经纬度确实很方便而且可行。

就当一个特殊经验记录一下,来源不详,将来在考证。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值