2016-07-24 15 views
-1

Ich habe eine vorhandene Karte auf einer Webseite, die richtig gezoomt und zentriert ist mit dem folgenden Skript-Segment: var mapOptions = { center: {lat: 43.57023, lng: -79.48676} , zoom: 12 } map = neue google.maps.Map (document.getElementById ("map-canvas"), mapOptions);Google Maps KML-Ebene anfängliche Zoom und Zentrum

Dann füge ich die kml-Ebene mit: var myLayer = new google.maps.KmlLayer ({url: ""}); myLayer.setMap (Karte);

Dies hat für das letzte Jahr funktioniert. Allerdings musste ich die kml-Datei aktualisieren, um ein größeres Gebiet einzubeziehen. Die neue kml-Datei funktioniert, aber die neuen Zoom- und Mittelpunktpositionen werden nicht berücksichtigt.

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

});

Stattdessen ist die Karte herausgezoomt, so dass ich 3 komplette Erden plus ein bisschen auf jeder Seite sehe und das Zentrum ist weit über dem Nordpol. Sie können die zwei verschiedenen Ergebnisse unter http://www.a711lions.ca/recycleforsight/locationmap.html und http://www.a711lions.ca/recycleforsight/locationmap2.html sehen.

Ich habe gelesen, dass ich eine layer.preserveViewport Einstellung verwenden kann, um dies zu überwinden, aber ich versuche zu verstehen, warum es überhaupt passiert. AFAICT die Punkte sind alle in Kanada (sie erscheinen nicht in der Triple-Earth-Ansicht als irgendwo anders) also warum ist die KML-Schicht so riesig?

Irgendwelche Ideen?

Antwort

1

Ihre KML-Datei enthält einen schlechten Punkt:

<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> 

Es befindet sich auf dem Nordpol.

+0

Ja, danke. Ich habe es gestern gefunden, nachdem ich die Koordinaten mit Regexes überprüft hatte. Dennoch hätte es nicht zu solch bizarrem Verhalten führen dürfen. Das scheint es zu verbieten, Santa's Werkstatt zu markieren. :) Wenn ich es an einem unsinnigen Ort, wie 91 Grad Nord, platziert hätte, dann würde ich erwarten, dass es ignoriert oder vielleicht als "von der Erde" markiert wird. Wenn es an einem legalen Ort ist, sollte es zugeordnet werden. –

+0

Wenn Sie einen Punkt am Nordpol haben, zeigt die Karte ihn an (herauszoomen, um ihn aufzunehmen), und 90 Grad sind problematisch mit der Mercator-Projektion, die in Google Maps verwendet wird. – geocodezip

+0

Ein Punkt, der durch das Problem widerlegt scheint. Der Standort befindet sich am Nordpol (90 Grad Nord), wo der Längengrad nicht relevant ist - -3 Grad ist genauso gültig wie jeder andere Längengrad. Der tatsächliche Zoom war viel größer als die gesamte Erde und es gab keine Markierung am Nordpol. In diesem Fall hätte die Projektion die Markierung -3 verwenden sollen, um die Markierung etwas westlich des Nullmeridians anzuzeigen. Sorry, aber ich kann das nicht als etwas anderes als einen Fehler im Code von Google sehen. –