高德地圖AMap.LngLat物件,與經緯度陣列可以通用[116.258446,37.686622]
阿新 • • 發佈:2019-02-06
節選程式碼:
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物件:
| 將其他地圖服務商的座標批量轉換成高德地圖經緯度座標。最多支援40對座標。 type用於說明是哪個服務商的座標,可選值有: gps:GPS原始座標; baidu:百度經緯度; mapbar:圖吧經緯度; |
| 構造一個地理座標物件,lng、lat分別代表經度、緯度值 |
包括map.setCenter函式也支援兩種輸入方式:
map.setCenter([116.39,39.9]); //陣列方式和LngLat物件都行,但不是說兩者相同
map.setCenter(lnglat);
| 獲取地圖中心點經緯度座標值。 |
我不清楚之前寫的程式碼是根據哪個例子寫的,但是用陣列代表經緯度確實很方便而且可行。
就當一個特殊經驗記錄一下,來源不詳,將來在考證。