您的位置:首页 > 其它

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

2018-03-30 15:02 459 查看
节选代码: 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
获取地图中心点经纬度坐标值。
我不清楚之前写的代码是根据哪个例子写的,但是用数组代表经纬度确实很方便而且可行。
就当一个特殊经验记录一下,来源不详,将来在考证。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐