我正在尝试使用geopy和Google API。我正在通过模型查询地址城市,状态地址详细信息将输入到地理定位器中,并为我提供lat / lng用于Google Maps api。我想要: a。)获得一组独特的lat / lng坐标 b。)拉入模板 c。)遍历列表并在地图上发布多个引脚。
以下是我目前的观点。不确定如何在上下文中获取循环以呈现到模板中。
def maps_multi(request):
address_list = CustomerOrder.objects.filter(city__icontains = 'CA').distinct() # pulls all unique addresses in California
address_list1 = address_list[0:2] # temporarily select first three addresses from list to test
geolocator = GoogleV3()
for x in address_list1:
add_list = []
add_city = x.city
location = geolocator.geocode(add_city)
add_list.append(location)
print(add_list)
context = {}
return render(request, 'orderdisplay/maps_multi.html', context)
答案 0 :(得分:0)
我刚刚经历了同样的事情并且还在学习更多知识。 一旦我有了我的列表,我就将它发送到模板并迭代它以在地图上显示点。在这种情况下,我通过了'商店':商店
return render(request, 'myapp/sometemplate.html', {'form': form, 'stores': stores})
然后在我的模板中迭代该列表。然后,您可以根据需要在地图上绘制这些点。
{% for store in stores %}
latlng = new google.maps.LatLng("{{ store.location.y }}", "{{ store.location.x }}");
new google.maps.Marker({
position: latlng,
map: map,
title: "{{ store.address }}"
});
{% endfor %}