2012-03-28 1 views
0

ich die Javascript API v3 bin mit wie folgt:Einführung in Google App Engine und Google Maps API v3 sprechen

(function() { 
       window.onload = function(){ 
        var latlng = new google.maps.LatLng(57.8, 14.0); 
        var options = { 
         zoom: 6, 
         center: latlng, 
         mapTypeId: google.maps.MapTypeId.ROADMAP 
        }; 
        var map = new google.maps.Map(document.getElementById('map'), options); 
       } 
      })(); 

laden ein Google Maps anzuzeigen - entnommen aus Beispiel http://www.svennerberg.com/2009/06/google-maps-api-3-the-basics/. Jetzt bin ich daran interessiert, Long/Lat-Details aus dem Datenspeicher zu ziehen und diese als Marker zu betrachten. Aber ich bin mir nicht sicher, wie das am besten funktioniert. Es scheint einige verwirrende Beispiele zu geben, die nicht helfen. Ich arbeite an der Google App Engine in Python. Hat jemand irgendwelche Hinweise für die einfache Art, Marker hinzuzufügen.

Dank

Antwort

1

Ich bin nicht sicher, ob Sie fragen, wie kann ich Speichern/Laden von Lat/Lng Daten im Datenspeicher, oder wenn Sie fragen, wie bekomme ich die Daten in Javascript, also werde ich beide beantworten.

Angenommen, Sie verwenden den ursprünglichen Datenspeicher, erstellen Sie einfach eine GeoPtProperty, um die Daten zu speichern. Wenn Sie das Objekt aus dem Datenspeicher laden, haben Sie eine Instanz eines GeoPt-Objekts mit einer Eigenschaft lat und lon.

Soweit, wie Sie diese Daten in Javascript erhalten, haben Sie mehrere Optionen, abhängig von Ihrem Anwendungsfall, verschiedene Optionen möglicherweise besser für Sie. 1. Sie können die Daten in Ihre Vorlage ausgeben, wenn Sie den Rest der Seite rendern. Wie das genau funktioniert, hängt vom Templatsystem ab, aber Sie möchten eine JSON-Darstellung der Daten mit json.dumps oder simplejson.dumps erstellen. 2. Sie können nach den Daten als AJAX-Anfrage fragen und einen JSON zurückgeben Darstellung der Daten. 3. Sie können die Daten in Ihren HTML-Code einbetten und Ihr JavaScript DOM-Manipulation verwenden, um die Daten zu lesen.

Eine weitere fortgeschrittene Methode, die Sie in Betracht ziehen sollten, wenn Sie viele Marker verwenden, besteht darin, eine KML-Ebene mit den Daten darin zu erstellen und die KML-Ebene anzuzeigen.

+0

Danke. Ich habe die GeoPtProperty-Speicherorte richtig im Datenspeicher gespeichert und ja, Sie machen Sinn, wenn Sie das Vorlagensystem verwenden - Django in diesem Fall, um die Seite zu rendern. Ich bin vertraut mit der Verwendung der Django-Vorlagen, aber nicht so sehr mit Javascript. – Androidian

3

Es ist ziemlich einfach, nur um die Länge/Breite von Ihrem Server irgendwie, entweder auf der Seite einbetten, oder es mit einer Ajax-Anforderung erhält, dann erstellen Sie nur ein Objekt Marker.

var marker - new google.maps.Marker ({ map : <your map variable>, 
             position : <latlng variable> }); 

Behalten Sie das Marker-Objekt in einer Variablen, und Sie können es aktualisieren, ohne es erneut zu erstellen.

marker.setPosition(<new latlng>);