【发布时间】:2019-11-22 06:47:18
【问题描述】:
我知道这个问题被问得更频繁。但不幸的是,对于我的代码,没有一个答案对我有用。我有以下谷歌地图代码,并想设置我自己的谷歌地图标记图标。
为此,我尝试了以下代码。可惜没有成功。
<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?
key=key"></script>
<div id="map_canvas"></div>
<script>
var locations = [
['title',51.0, 11.0, 'https://www.domain.de/, 4],
['title',51.0, 11.0, 'https://www.domain.de/, 4],
['title',51.0, 11.0, 'https://www.domain.de/, 4],
['title',51.0, 11.0, 'https://www.domain.de/, 4],
['title',51.0, 11.0, 'https://www.domain.de/, 4],
['title',51.0, 11.0, 'https://www.domain.de/, 4]
];
var map;
var markers = [];
function init(){
map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 7,
center: new google.maps.LatLng(51.5151, 10.4545),
mapTypeId: google.maps.MapTypeId.ROADMAP,
styles:
[
]
});
function setMarkers(map) {
var image = {
url: 'marker-path/marker.jpg',
size: new google.maps.Size(20, 32),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(0, 32)
};
var shape = {
coords: [1, 1, 1, 20, 18, 20, 18, 1],
type: 'poly'
};
var num_markers = locations.length;
for (var i = 0; i < num_markers; i++) {
markers[i] = new google.maps.Marker({
position: {lat:locations[i][1], lng:locations[i][2]},
map: map,
icon: image,
html: locations[i][0],
id: i,
});
google.maps.event.addListener(markers[i], 'click', function(){
var infowindow = new google.maps.InfoWindow({
id: this.id,
content:this.html,
position:this.getPosition()
});
google.maps.event.addListenerOnce(infowindow, 'closeclick', function(){
markers[this.id].setVisible(true);
});
this.setVisible(false);
infowindow.open(map);
});
}
}}
init();
</script>
很遗憾,没有显示任何标记。问题出在哪里?
【问题讨论】:
-
maker-path/maker.jpg是正确的路径和图像名称吗?事实上,您的代码不能用于重现该问题。请提供一个 Minimal, Reproducible Example 来证明该问题。也请正确缩进你的代码,以便它可读。 -
我在发布的代码中收到了一个 javascript 错误:
Uncaught SyntaxError: Invalid or unexpected token在这些行上:['title',51.0, 11.0, 'https://www.domain.de/, 4],(包含域的字符串未正确关闭)。在发布之前,您是否测试过代码是否重现了您的问题?好奇的是,setMarkers函数是否曾被调用过?
标签: javascript google-maps google-maps-api-3 google-maps-markers