我在 GSQL 数据库中有一个我希望发送到 javascript 的标记列表,以便它们可以显示在谷歌地图上。实际上,我传递了一个 python 列表,它看起来像:
[[50.1142, .12231, "MarkerName"], [49.131, -.12232, "MarkerName2"], [48.131, -.12232, "MarkerName3"]]
通过 jinja2 模板,作为变量“maplist”。
我的 javascript 在模板上看起来像这样:
<script type="text/javascript">
$(document).ready(function () {
var latitude = parseFloat("51.515252");
var longitude = parseFloat("-0.189852");
var latlngPos = new google.maps.LatLng(latitude, longitude);
// Set up options for the Google map
var myOptions = {
zoom: 10,
center: latlngPos,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// Define the map
map = new google.maps.Map(document.getElementById("map"), myOptions);
});
function addMarker(lat, lng, name){
var point = new google.maps.LatLng(lat, lng);
var marker = new google.maps.Marker({position: point,
map: map,
title: name
});
};
</script>
我像这样遍历列表:
{% for marker in maplist %}
<script type="text/javascript">
addMarker(parseFloat('{{marker.1}}'),parseFloat('{{marker.2}}'),'{{marker.0}}');
</script>
{% endfor %}
但是,地图上没有显示任何标记。我完全不相信我的方法是最好的,但我在这里看到了它:Parsing dictionary from GAE python to create marker objects in javascript / GMaps api,这对我来说很有意义。也许 JSON 是一种更好的方法,在这种情况下,我将非常感谢任何突出的例子(基本上是一个完全的 Javscript-neophyte)