javascript - 谷歌地图 : Clickable Custom Marker

标签 javascript google-maps google-maps-api-3

在循环内创建许多自定义标记后,我似乎找不到能够链接到外部网站的解决方案,而每个标记都有唯一的链接。

我尝试了此代码的许多变体,但似乎不断遇到 undefined variable (下面的代码演示了未定义的map_markers变量)

        <script src="https://maps.googleapis.com/maps/api/js"></script>
	    <script type="text/javascript">
	    	var map;

            // generated by PHP, but output looks like this...
	    	var map_markers = [[43.536396, -110.740956, "T1", "/test-url"],[43.812092, -111.097181, "T2", "/test-url2"],[43.53640889360323, -110.74090051257326, "T3", "/test-url3"],[43.463373, -110.762519, "T4", "/test-url4"]];

			google.maps.event.addDomListener(window, 'load', function() {
				var mapCanvas = document.getElementById('map');
    			map = new google.maps.Map(mapCanvas, {
					center: new google.maps.LatLng(37.8846194, -95.660041),
					zoom: 4,
					mapTypeId: google.maps.MapTypeId.ROADMAP
    			});

    			for (var i = 0; i < map_markers.length; i++) {
					var marker = new google.maps.Marker({
						position: {'lat': map_markers[i][0], 'lng': map_markers[i][1]},
						map: map,
						title: map_markers[i][2]
					});
		            google.maps.event.addListener(marker, 'click', (function(markers, index) {
				        return function() {
				            window.open("http://www.example.com/" . markers[index][3], '_blank');
				        }
				    })(map_markers, i));
				}

			});
		</script>

注意:上面的代码使用了一个附件,但我尝试了很多变体,例如向标记添加“url”参数(但这会导致 url 属性未定义?),我尝试过 this.url也拥有该属性(property),但没有运气......

上面的代码在单击标记时会生成此错误: 未捕获类型错误:无法读取未定义的属性“135”,其中 135 是单击的标记的索引号

我已经在网上搜索过,但似乎没有解决方案可以解决我的问题。也许我错过了一些简单的东西,但这让我很难过[?]

PS: map 和标记生成完美,只是在单击我遇到问题的标记时出现 JS 错误!

TIA!

最佳答案

看起来像

window.open("http://www.example.com/" . markers[index][3], '_blank');

应该是

window.open("http://www.example.com/ "+ map_markers[index][3], '_blank');

关于javascript - 谷歌地图 : Clickable Custom Marker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34601730/

相关文章:

javascript - 如何将 bootstrap glow(在 'form-control' CSS 类中使用)放在 div 上?

java - 我想为我的桌面应用程序使用 Google Map API

google-maps-api-3 - Google map v3 可拖动标记

android - 从 firebase 检索 map 坐标并在谷歌地图上绘制

google-maps - 在谷歌地图中创建多个信息框和标记

android - Reverse GeoCoordinate Class 给出 Location Not found 错误

javascript - GoogleMaps MarkerClusterer 信息窗口位置

java - 如何检查客户端网络/防火墙的端口是否打开?

javascript - 下拉框提交时遇到 JavaScript 问题?

javascript - 页面加载 1/5 后恢复正常