高德地图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对象:
包括map.setCenter函数也支持两种输入方式:
map.setCenter([116.39,39.9]); //数组方式和LngLat对象都行,但不是说两者相同
map.setCenter(lnglat);
我不清楚之前写的代码是根据哪个例子写的,但是用数组代表经纬度确实很方便而且可行。
就当一个特殊经验记录一下,来源不详,将来在考证。
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([116.39,39.9]); //数组方式和LngLat对象都行,但不是说两者相同
map.setCenter(lnglat);
getCenter( ) | LngLat | 获取地图中心点经纬度坐标值。 |
就当一个特殊经验记录一下,来源不详,将来在考证。
相关文章推荐
- 关于理解《C++ 对象模型》中:把单一元素的数组放在末尾,struct可以拥有可变大小的数组
- 对类的对象批量声明时可以使用数组形式
- 使对象可以像数组一样进行 foreach 循环,要求属性必须是私有
- 在类数组对象上复用通用的数组方法
- Effective Java 对于所有对象都通用的方法 12.考虑实现Comparable(可以比较)接口
- 自定义对象中文排序,可以指定排序的字段名,较为通用
- 根据经纬度(lat,lng)查找附近的地点(续)
- C/C++,Java,PHP,JavaScript,Json数组、对象赋值时,最后一个元素后面是否可以带逗号?
- javascript中数组Array对象调用不同的方法可以实现几种数据结构
- js里 数组或对象的键名可以修改吗?
- 使对象可以像数组一样进行foreach循环,要求属性必须是私有
- JSON的数组对象 可以向javascript的Array对象一样操作
- JS在火狐下还可以打印出对象及数组和普通字符
- RandomAccess接口可以判断List对象是否支持快速随机访问(数组的get(i)访问)
- 浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
- 创建一个对象,字母存储在一个数组中,并且用一个方法可以将字母连在一起,显示成一个单词
- [Effective JavaScript 笔记]第51条:在类数组对象上复用通用的数组方法
- 由多个Object(以Teacher为例)对象所形成的数组可以使用Arrays.sort方法进行排序(编号由低到高排序)。
- 判断一个值是否在数组里,可以检测数字,字符串,json对象
- 由多个Object(以Teacher为例)对象所形成的数组可以使用Arrays.sort方法进行排序(编号由低到高排序)。