Mar*_*ark 23 javascript api google-maps
我一直想弄清楚JS的一点点:(我有一张谷歌地图
var myCenter=new google.maps.LatLng(53, -1.33);
function initialize()
{
var mapProp = {
center:myCenter,
zoom: 14,
draggable: false,
scrollwheel: false,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("map-canvas"),mapProp);
var marker=new google.maps.Marker({
position:myCenter,
icon:'images/pin.png',
url: 'http://www.google.com/',
animation:google.maps.Animation.DROP
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
Run Code Online (Sandbox Code Playgroud)
但我似乎无法连接标记网址的onclick事件?
我知道它与添加有关
google.maps.event.addListener(marker, 'click', function() {window.location.href = marker.url;});
Run Code Online (Sandbox Code Playgroud)
但是我把它放在哪里会导致地图无法显示或标记不显示.
Zim*_*Zim 20
确保在marker
initialize()之外定义.否则,undefined
如果您尝试将click侦听器分配到initialize()之外,则会出现这种情况.
此外,如果您尝试加载URL www.google.com
,则可能会出现SAME-ORIGIN问题,但它应该可以正常使用本地URL.
更新的代码
var myCenter=new google.maps.LatLng(53, -1.33);
var marker=new google.maps.Marker({
position:myCenter,
url: '/',
animation:google.maps.Animation.DROP
});
function initialize()
{
var mapProp = {
center:myCenter,
zoom: 14,
draggable: false,
scrollwheel: false,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("map-canvas"),mapProp);
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
google.maps.event.addListener(marker, 'click', function() {window.location.href = marker.url;});
Run Code Online (Sandbox Code Playgroud)
这是我使用的:
var latLng = new google.maps.LatLng(53, -1.33);
var map = new google.maps.Map(document.getElementById('map_canvas'), {
center: latLng,
draggable: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
scrollwheel: false,
zoom: 14
});
var marker = new google.maps.Marker({
animation: google.maps.Animation.DROP,
icon: 'images/pin.png',
map: map,
position: latLng
});
google.maps.event.addDomListener(marker, 'click', function() {
window.location.href = 'http://www.google.co.uk/';
});
Run Code Online (Sandbox Code Playgroud)
我不确定你是否可以url
用Marker
对象存储属性.
如果您需要显示多个标记(即来自API调用),那么您可以使用如下for
循环:
for (var i = 0; i < markers.length; i++) {
(function(marker) {
var marker = new google.maps.Marker({
animation: google.maps.Animation.DROP,
icon: 'images/pin.png',
map: map,
position: market.latLng
});
google.maps.event.addDomListener(marker, 'click', function() {
window.location.href = marker.url;
});
})(markers[i]);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
83763 次 |
最近记录: |