让Google App Engine和Google Maps API v3畅谈

时间:2012-03-28 17:20:54

标签: django google-maps google-app-engine

我正在使用Javascript 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);
                }
            })();

加载谷歌地图视图 - 取自示例http://www.svennerberg.com/2009/06/google-maps-api-3-the-basics/。现在我热衷于从数据存储中提取长/纬度细节并将其视为标记。但是,我不确定最聪明的方法,似乎有一些令人困惑的例子无济于事。我正在使用Python的Google App Engine。有没有人对添加标记的简单方法有任何指示。

由于

2 个答案:

答案 0 :(得分:3)

这非常简单,只需从服务器获取lat / long,或者将其嵌入页面中,或者使用ajax请求获取它,然后只需创建一个标记对象。

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

将标记对象保留在变量中,您可以更新它而无需重新创建它。

marker.setPosition(<new latlng>);

答案 1 :(得分:1)

我不确定您是否在询问如何在数据存储中存储/加载Lat / Lng数据,或者如果您问我如何将数据转换为javascript,那么我将回答这两个问题。

假设您正在使用原始数据存储区,只需创建一个GeoPtProperty来存储数据。从datstore加载对象时,您将拥有一个具有lat和lon属性的GeoPt对象的实例。

至于如何将这些数据导入javascript,您有多种选择,具体取决于您的使用案例,不同的选项对您来说可能更好。 1.渲染页面的其余部分时,可以将数据输出到模板。它的工作原理将根据您的模板系统而有所不同,但您需要使用json.dumps或simplejson.dumps创建数据的JSON表示形式。 2.您可以将数据作为AJAX请求请求,并返回数据的JSON表示。 3.您可以将数据嵌入HTML中,让javascript使用DOM操作来读取数据。

如果使用大量标记,您需要考虑的另一种更高级的方法是创建一个包含数据的KML图层并显示KML图层。