javascript Google Maps API v3 - 自定义标记未出现

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17618685/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-27 08:59:26  来源:igfitidea点击:

Google Maps API v3 - Custom Marker not appearing

javascriptgoogle-maps

提问by eksch

I am sure this is a simple fix, but I've been searching all over and everything I try just does not work. All I'm trying to do is replace the default marker with a custom icon, but it will not show up. Here's my code:

我确信这是一个简单的修复,但我一直在搜索,但我尝试的所有方法都不起作用。我要做的就是用自定义图标替换默认标记,但它不会显示。这是我的代码:

<script type="text/javascript">

function initialize() {
var myLatlng = new google.maps.LatLng(43.041936,-88.044523);
var mapOptions = {
    center:myLatlng,
    zoom:15,
    disableDefaultUI:true,
    mapTypeId:google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("milwaukeeMap"), mapOptions);

var marker = new google.maps.Marker();
    marker.setPosition(myLatlng);
    marker.setMap(map);
    marker.setIcon('/images/map-marker.png');
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>

I know the image is in the correct location; I can find it in my browser if I type the path. I've checked and double-checked, but is there a problem with my code? Sorry, I can't provide a live example.

我知道图像在正确的位置;如果我输入路径,我可以在浏览器中找到它。我已经检查并仔细检查过,但是我的代码有问题吗?对不起,我不能提供一个活生生的例子。

回答by devbnz

<script type="text/javascript">

function initialize() {
var myLatlng = new google.maps.LatLng(43.041936,-88.044523);
var mapOptions = {
        center:myLatlng,
        zoom:15,
        disableDefaultUI:true,
        mapTypeId:google.maps.MapTypeId.ROADMAP
        }
var map = new google.maps.Map(document.getElementById("milwaukeeMap"), mapOptions);

var markerImage = 'images/map-marker.png';

var marker = new google.maps.Marker({
        position: myLatlng,
        map: map,
        icon: markerImage
        });
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>

Try this, i changed how to create the marker.

试试这个,我改变了如何创建标记。

I changed the image url to test it, it seams its working:

我更改了图像 url 来测试它,它可以正常工作:

<html>
<head>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script type="text/javascript">

function initialize() {
var myLatlng = new google.maps.LatLng(43.041936,-88.044523);
var mapOptions = {
        center:myLatlng,
        zoom:15,
        disableDefaultUI:true,
        mapTypeId:google.maps.MapTypeId.ROADMAP
        }
var map = new google.maps.Map(document.getElementById("milwaukeeMap"), mapOptions);

var markerImage = 'http://www.mapsmarker.com/wp-content/uploads/leaflet-maps-marker-icons/bar_coktail.png';

var marker = new google.maps.Marker({
        position: myLatlng,
        map: map,
        icon: markerImage
        });
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="milwaukeeMap" style="height:400px;width:400px;"></div>
</body>
</html>

Code on JSFiddle http://jsfiddle.net/iambnz/NGja4/160/

JSFiddle 上的代码http://jsfiddle.net/iambnz/NGja4/160/

回答by DLyons

I found that in some cases, externally hosted icons need an extra parameter e.g.

我发现在某些情况下,外部托管的图标需要一个额外的参数,例如

images/map-marker.png?raw=true

回答by John Major

I was using Firefox 57.0.4 for Ubuntu then I switch over to Chromium Version 63.0.3239.84 and it worked. That is with the

我在 Ubuntu 上使用 Firefox 57.0.4 然后我切换到 Chromium 版本 63.0.3239.84 并且它工作了。那是与

?raw=true

On and off.

开和关。

回答by Ron

I created a small test file, and there does not seem to be anything wrong with your javascript code. I see my own marker perfectly. So it seems there is something wrong in the rest of your HTML file. Does the PNG file exists? Is it really a PNG? Maybe try a different image to be sure.

我创建了一个小的测试文件,您的 javascript 代码似乎没有任何问题。我完美地看到了我自己的标记。因此,您的 HTML 文件的其余部分似乎有问题。PNG文件是否存在?它真的是PNG吗?也许尝试不同的图像来确定。

Ron.

罗恩。