更新:Google于2016年3月6日修复了此错误 https://code.google.com/p/gmaps-api-issues/issues/detail?id=8003&q=apitype%3AJavascript3%20type%3ADefect&sort=-stars&colspec=ID%20Type%20Status%20Introduced%20Fixed%20Summary%20Internal%20Stars
当最短的线穿过国际日期线时,我无法显示两点之间的最短线。有一个问题的例子:http://cars-suck.com/Test(放大和缩小显示谷歌的目标。)
旧金山和东京之间的一条线应该穿越太平洋,因为这是最短路径。相反,谷歌在北美,大西洋,亚洲等地划了一条线。
我应该改变什么来获得我想要的线?
这是.kml文件的相关块:
<Placemark>
<styleUrl>#multiTrack</styleUrl>
<gx:Track>
<altitudeMode>clampToGround</altitudeMode>
<when>2014-09-17T07:25:06.875-07:00</when><gx:coord>-122.4167 37.7833 0</gx:coord>
<when>2014-09-18T12:06:42.745-07:00</when><gx:coord>139.6833 35.6833 0</gx:coord>
</gx:Track>
这是显示地图的脚本:
<script>
function initialize() {
var mapCanvas = document.getElementById('map_canvas');
var mapOptions = {
center: new google.maps.LatLng(21.3114, -179.9999),
zoom: 2,
mapTypeId: google.maps.MapTypeId.TERRAIN,
preserveViewport: true,
}
var map = new google.maps.Map(mapCanvas, mapOptions);
var kmlUrl = 'http://cars-suck.com/Test/Assets/gps_history.kml';
loadKmlLayer(kmlUrl, map);
}
function loadKmlLayer(src, map) {
var kmlLayer = new google.maps.KmlLayer(src, {
suppressInfoWindows: false,
preserveViewport: true,
map: map
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
完整的.kml文件位于:cars-suck.com/Test/Assets/gps_history.kml
我可能已经失去了理智,但我相信这在1月份正常运作。也许我依赖于被弃用的东西,或者我只是觉得它在起作用。
更新:我没有忘记。有人在此报告了类似的问题:productforums.google.com/forum /#!topic / maps / kQo4IcDRysk
在stackoverflow上:Google Maps mangling KML
还没有解决方案。
答案 0 :(得分:1)
当Google地球中的几何图形需要跨越国际日期线时,您可以指定度数坐标与预期方向上的“提示”不同。来自Google KML specification:
指定边界框的西边缘的经度 十进制度从0到±180。对于与子午线重叠的叠加层 经度为180°时,数值可以超出该范围。
在您的情况下,KML将是:
<Placemark>
<styleUrl>#multiTrack</styleUrl>
<gx:Track>
<altitudeMode>clampToGround</altitudeMode>
<when>2014-09-17T07:25:06.875-07:00</when><gx:coord>-122.4167 37.7833 0</gx:coord>
<when>2014-09-18T12:06:42.745-07:00</when><gx:coord>-220.3167 35.6833 0</gx:coord>
</gx:Track>
</Placemark>
P.S。感谢您提供.kml文件,这使调试非常方便!
答案 1 :(得分:1)
这是google地图javascript API中的一个错误。该漏洞于2015年5月推出。Here's the bug report。添加投票可以加快修复速度。