我正在使用usaLow.js地图构建地图.在map init上,我调用一个返回此数据的json方法:
[{latitude: "40.4258686",longitude: "-86.9080655"}]
有了这些数据,我就用这个添加到地图的数据提供者(mapData):
mapData.images = []; for(var i = 0; i < resp.length; ++i){ mapData.images.push({ type: "circle",color:"#FF0000",latitude: parseFloat(resp[i].latitude),longitude: parseFloat(resp[i].longitude) }); } map.validateData();
这个位置应该在印第安纳州,但这是我看到标记的位置:
不使用世界地图时是否需要转换纬度/经度坐标?如果是这样,怎么办呢?
编辑:修正了JSON字符串错误
解决方法
您似乎正在使用未经校准的美国地图. (usaLow.js)此地图因视觉目的而扭曲,因此与真实的纬度/经度坐标不兼容.
要解决此问题,您需要使用其中一个已校准的地图.选项如下:
选项1:usa2Low.js
它是墨卡托校准的美国大陆.除了阿拉斯加和夏威夷之外,标记应该是正确的.
选项2:usaMercatorLow.js
此地图与坐标完全兼容,包括阿拉斯加和夏威夷.但是,它可能看起来不那么有吸引力:
这两个地图都与JavaScript地图捆绑在一起.