谷歌地图KML层的初始缩放和中心

Google maps KML layer initial zoom and centre

本文关键字:缩放 KML 谷歌地图      更新时间:2023-09-26

我在一个网页上有一个现有的地图,它使用以下脚本片段进行了适当的缩放和居中:var mapOptions={中心:{纬度:43.57023,lng:-79.48676},缩放:12}map=new google.maps.map(document.getElementById("map canvas"),mapOptions);

然后我添加kml层使用:var myLayer=新的google.maps.KmlLayer({url:"});myLayer.setMap(map);

这在去年一直有效。然而,我不得不更新kml文件以包括更大的区域。新的kml文件有效,但新的缩放和中心位置没有得到尊重。

  map = new google.maps.Map(document.getElementById("map-canvas"), {
  center: { lat: 48.0, lng: -89.0 },
  zoom: 4 

});

相反,地图被缩小了,所以我看到了3个完整的地球,每边都有一点,中心在北极上方。您可以在http://www.a711lions.ca/recycleforsight/locationmap.html和http://www.a711lions.ca/recycleforsight/locationmap2.html.

我读到过我可以使用layer.preserveViewport设置来克服这个问题,但我正在努力理解为什么会发生这种情况。AFAICT这些点都在加拿大(它们在三重地球视图中肯定不会像在其他地方一样出现),那么为什么KML层如此巨大呢?

有什么想法吗?

您的KML文件包含一个坏点:

<Placemark>
    <name>Dr. Sibbald</name>
    <description><![CDATA[<br><b>Address:</b> Applewood Shopping Ctre, Suite 210, 1077 N. Service Rd<br><b>City:</b> Mississauga<br><b>Postal Code:</b> L5R 2X5<br><b>Telephone:</b> (905)273-9009<br><b>Sponsoring Club:</b> Mississauga Credit Valley Lions Club]]></description>
    <styleUrl>#icon-503-DB4436</styleUrl>
    <Point>
        <coordinates>-3.0,90.0,0.0</coordinates>
    </Point>
    <!-- ... -->
</Placemark>

它位于北极。