我想知道是否有人设法让谷歌Map在Django project
内工作,如果是的话,他们能告诉我我可能做错了什么吗?
在base.html中,我在base.html的正文末尾有以下脚本:
<script src="{% static '/js/script.js' %}" ></script>
<script src="https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/markerclusterer.js"></script>
<script async defer src=https://maps.googleapis.com/maps/api/js?key=”API_KEY”&callback=initMap"></script>
<script src="{% static '/js/maps.js' %}" ></script>
Script.js工作正常,map.js正在执行,但是map.js运行后,div元素不会显示。
在maps.js中,我有:
function initMap() {
var map = new google.maps.Map(document.getElementById("map"), {
//zoom: 3,
zoom: 10,
center: {
lat: 46.619261, lng: -33.134766
}
});
var labels = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var locations = [
{ lat: 40.785091, lng: -73.968285},
{ lat: 41.084045, lng: -73.874245},
{ lat: 40.754932, lng: -73.984016}
];
var markers = locations.map(function(location, i){
return new google.maps.Marker({
position: location,
label: labels[i % labels.length]
});
});
var markerCluster = new MarkerClusterer( map, markers, {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m' } );
}
我似乎没有任何Google API密钥问题。但是,我在index.html中有一个div,其中包含以下元素,并且没有显示map:
<div class="row">
<!-- Map -->
<div id="map" class="col-12"></div>
<div class="col-12 mt-2 request-page">
<h2>Map Will Go Above Here </h2>
</div>
</div>
如果我在index.html中加载static并将脚本放置在index.html中,我可以得到要显示的Map,但理想情况下,我认为我应该在base.html中这样做。
我没有更改settings.py
,views.py
或urls.py
以适应GoogleMap,这是我的错误吗?
先谢谢你了。
2条答案
按热度按时间xfyts7mz1#
如果有一个空白间隙,请创建一个CSS文件并添加
#map {height:500px;width: 100%;}
,不要忘记将其链接到HTML。ubby3x7f2#
这可能是因为div元素
#map
没有定义的高度。尝试添加style="height: 300px"
到它。