2012-03-28 3 views
0

Я использую API v3 Javascript следующим образом:Получение Google App Engine и Google Maps API v3 говорить

(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); 
       } 
      })(); 

загрузить Google Maps просмотра - взяты из примера http://www.svennerberg.com/2009/06/google-maps-api-3-the-basics/. Теперь я заинтересован в том, чтобы вытащить длинные/lat детали из хранилища данных и рассматривать их как маркеры. Однако я не уверен в самом умном способе сделать это, похоже, некоторые запутанные примеры не помогают. Я работаю над Google App Engine в Python. У кого-нибудь есть указатели на простой способ добавления маркеров.

Благодаря

ответ

1

Я не уверен, если вы спрашиваете, как я храню/загрузки данных Lat/LNG в хранилище данных, или если вы спрашиваете, как я могу получить данные в JavaScript, поэтому я отвечу на оба.

Предполагая, что вы используете оригинальный хранилище данных, просто создайте GeoPtProperty для хранения данных. Когда вы загружаете объект из datstore, у вас будет экземпляр объекта GeoPt с атрибутом lat и lon.

Насколько вы можете получить эти данные в javascript, у вас есть несколько вариантов, в зависимости от вашего варианта использования, для вас могут быть более разные варианты. 1. Вы можете выводить данные в свой шаблон, когда вы просматриваете остальную часть страницы. Как это точно работает, это зависит от вашей системы шаблонов, но вы захотите создать JSON-представление данных с помощью json.dumps или simplejson.dumps. 2. Вы можете запросить данные как запрос AJAX и вернуть JSON представление данных. 3. Вы можете вставлять данные в свой HTML и использовать javascript для манипулирования DOM для чтения данных.

Еще один более продвинутый метод, который вы хотите рассмотреть, если вы используете множество маркеров, - это создать слой KML с данными в нем и отобразить слой KML.

+0

Спасибо. У меня есть места GeoPtProperty, которые правильно хранятся в хранилище данных, и да, при использовании системы шаблонов, при использовании системы шаблонов - в этом случае Django отображает страницу. Я знаком с использованием шаблонов Django, но не с Javascript. – Androidian

3

Это довольно просто, просто получить широту/долготу с вашего сервера каким-то образом, либо встраивать его на странице, или получить его с запросом AJAX, то вы просто создать объект маркера.

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

Храните объект-маркер в переменной, и вы можете обновить его, не обновляя его.

marker.setPosition(<new latlng>);