我有一个包含多个字段的 geodjango 查询集,但只想使用user_name
and location
(一个点字段)我想将其用作谷歌地图 API 3 中的标记。
请耐心等待,因为我不懂 JavaScript,而且我有一系列问题。
将此视为新手的概念性头脑风暴:
我的 SO 搜索表明我需要序列化查询集对象
到 JSON。我使用内置的序列化器模块来转换为 JSON。
我认为 JSON 对象被转换为views.py
(让我们
叫它json_data
)。这些 JSON 对象是否存储在 PostGIS 数据库中?这不是多余的吗?
此外,我如何在map.js
(谷歌地图
API 3) JavaScript 文件?
我想要(导入?链接?)JSON 对象将它们显示为位置标记。
我想知道如何声明和迭代 javascript 变量locations
.
For var(i=0;i< locations.length;i++){[
[json_data.user_name, json_data.point],
]
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(49.279504, -123.1162),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
icon: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
如果我用不必要的复杂方式来完成一项简单的任务,请指导我。