關於gps座標轉換百度座標時的坑。
網上有demo是很早前的轉換了,在我之前版本也是可以用的,這裏就不貼出來了,網上很多。
新加了一個需求是要批量座標軸轉換然後顯示標註的,啪啪啪問題來了。
首先碰到的問題
var convertor = new BMap.Convertor(); object is not function
方法未定義。
看了下引用文件 多了一行之前js引用百度map js文件,因爲第一次引用的是map js的公共組件,後面還有一個是對應之前單個座標轉換時引用的js ,這貨把上一個給覆蓋了,原因是因爲當有相同js函數存在時 最後一個會把上一個覆蓋 這個涉及到源生鏈 不作解釋.
然後第二個問題是關於
{"status":101,"message":"AK參數不存在"}
奇葩的那個1,5參數也不說解釋一下,我以爲是需要轉換的座標下標,後來看了文檔發現單個座標軸轉換也是1,5 醉了
convertor.translate(pointArr, 1, 5, translateCallback) 這貨調用的參數不正確,請認真對照!!!
然後解決了以後還有座標的顯示
convertor.translate(points, 1, 5, function (data) {
if (data.status === 0) {
for (var i = 0; i < data.points.length; i++) {
map.addOverlay(new BMap.Marker(data.points[i], {
icon: new BMap.Icon(json[i].Logo, new BMap.Size(50, 50))
}));
}
}
//var marker = new BMap.Marker(p, {
// icon: new BMap.Icon(e.Logo, new BMap.Size(50, 50))
//});
//map.addOverlay(marker);
});
少寫了一個括號導致沒有顯示。
ps: var pointArr = [];
pointArr.push(point);
console.log(pointArr);
convertor.translate(pointArr, 1, 5, translateCallback); //真實經緯度轉成百度座標
我只不過轉換一個座標而已 竟然讓我再定義一個數組,阿西吧!!!