这是下面的代码,完全在我的本地服务器上显示紫色图标,但标记未在我的网站上显示,我在google上搜索并尝试其他方法,但仍然遇到此问题,我猜这是由于多重加载API密钥错误,但是如果出现此错误,该如何解决?因为我已经删除了所有脚本,但仍然遇到问题。
<script>
var map;
var marker;
var infowindow;
var red_icon = 'http://maps.google.com/mapfiles/ms/icons/red-dot.png' ;
var purple_icon = 'http://maps.google.com/mapfiles/ms/icons/purple-dot.png';
var locations = <?php get_all_locations() ?>;
function initMap() {
var america = {lat: 37.09024, lng: -95.712891};
infowindow = new google.maps.InfoWindow();
map = new google.maps.Map(document.getElementById('map'), {
center: america,
zoom: 7
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
var i ;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i]
[2]),
icon : purple_icon,
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
}
<script async defer
src="https://maps.googleapis.com/maps/api/js?
language=en&key=APIKEY&callback=initMap">
</script>
答案 0 :(得分:1)
如果标记创建在本地而不是服务器上进行,则它可能与代码本身无关。
我认为问题出在这一行。
var locations = <?php get_all_locations() ?>;
该函数很可能返回一个空白数组,由于该数组未在地图上绘制任何标记。
尝试在控制台中打印出返回数组的值,以确保您确实获得了正确的位置数组。
var locations = <?php get_all_locations() ?>;
console.log(locations);