我正在使用 easy-maps for django 测试这个模板,但它不渲染 map ,我在浏览器上也没有错误...
{% load easy_maps_tags %}
<html>
<head>
</head>
<body>
<h3>Geo IP</h3>
{% easy_map "Russia, Ekaterinburg, Mira 32" 300 400 %}
</body>
</html>
我已经安装了 easy-maps 使用
pip install easy-maps
并在 settings.py 上启用它并同步数据库?
有什么我应该检查的想法吗?
更新
现在我使用了 google chromes inspect element 并且似乎在 Javascript 代码中有一个错误,所以这就是为什么 javascript 没有呈现页面....
<!-- Map creation script -->
<script type="text/javascript">
function initialize_map_1() {
var latlng = new google.maps.LatLng(, );
**/geolocate/:42 Uncaught SyntaxError: Unexpected token ,**
var mapElem = document.getElementById("map-canvas-1");
var mapOptions = {
zoom: 16,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
我仍在研究如何解决这个问题......
已修复:
看起来默认模板有错误,但是当我使用 easy-maps 附带的 map.html 模板时,它起作用了..
<html>
<head>
</head>
<body>
<h3>Geo IP</h3>
<p>Google Map Location: </p>
{% load easy_maps_tags %}
{% easy_map "Russia, Ekaterinburg, Mira 32" 300 400 using "easy_maps/map.html" %}
</body>
</html>
另一个问题:我正在将变量从 View 应用程序传递到此模板,例如。 {{ 城市 }}
我如何让它工作
{% easy_map "{{ city }}" 300 400 using "easy_maps/map.html" %}
我也试过
{% easy_map {{ city }} 300 400 using "easy_maps/map.html" %}
它不起作用...
关于如何将 {{ city }} 传递给 easy_map 标签的任何想法...
全部完成:
可以将上下文变量传递给 block 标记,而无需使用“{{ }}”括起来..
{% easy_map city 300 400 using "easy_maps/map.html" %}
最佳答案
我也遇到了同样的问题。在代码中挖掘我发现当计算纬度和经度时
from geopy import geocoders
g=geocoders.Google()
g.geocode("Russia, Ekaterinburg, Mira 32")
被调用并引发 ValueError:
ValueError: Didn't find exactly one placemark! (Found 2.)
因此找不到纬度和经度以及js语法错误:
var latlng = new google.maps.LatLng(, );
如果您提供更具体或更一般的地址,它将起作用并且 map 将呈现:
In [13]: g.geocode("Russia, Ekaterinburg")
Out[13]: (u'Yekaterinburg, Sverdlovsk Oblast, Russia', (56.8333333, 60.600000000000001))
关于Python Django easy-maps 不呈现谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9034624/