gpt4 book ai didi

javascript - 谷歌地图 v3 从 map 外部的链接打开信息窗口

转载 作者:搜寻专家 更新时间:2023-11-01 05:06:56 24 4
gpt4 key购买 nike

我试图在用户点击 map 外部的链接时打开信息窗口。不知道我在这里错过了什么。基本上,我有一个城市列表,每个城市都有一个 id(var ids 在 ids 上循环)。当用户单击该链接时(在 click="myclick('1')"id 上,该城市的信息窗口(1 = 伦敦等)打开。

如有任何帮助,我们将不胜感激。

var url = "my json link";
var gmarkers = [];

function initialize() {

var myLatlng = new google.maps.LatLng(0, 0);
var myOptions = {
zoomControl: true,
disableDefaultUI: true,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};

var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

downloadUrl(url, function(data) {

var j = eval('(' + data.responseText + ')');
var jlength = j.data.cities.length;

var bounds = new google.maps.LatLngBounds();

for(i=0; i < jlength; i++) {

var x = parseFloat(j.data.cities[i].lat);
var y = parseFloat(j.data.cities[i].lon);
var ids = parseFloat(j.data.cities[i].id);
var z = new google.maps.LatLng(x,y);
var title = j.data.cities[i].title;
var contentstring = 'text'

var marker = createMarker(ids);

var infowindow = new google.maps.InfoWindow({content: contentstring});

bounds.extend(z);
map.fitBounds(bounds);

};

if (map.getZoom() == 21)
{
map.setZoom(16);
}

if (map.getZoom() < 5)
{
map.setZoom(map.getZoom()+1);
}


function myclick(i) {
google.maps.event.trigger(gmarkers[i], 'click');
};


function createMarker(){

var marker = new google.maps.Marker({
position: z,
map: map,
title: title,
html: contentstring,
icon: 'imagelink'
});

google.maps.event.addListener(marker,'click',function(){
infowindow.setContent(this.html);
infowindow.open(map,marker);
});

//google.maps.event.addListener(marker,'click',function(){
//window.location.href = marker.url;
//});

gmarkers[ids] = marker;

};

});

};

google.maps.event.addDomListener(window, 'load', initialize);

function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;

request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};

request.open('GET', url, true);
request.send(null);
}

function doNothing() {};

最佳答案

看起来 myclick 现在在全局上下文中不可用。

尝试将其显式分配给上下文(在本例中为窗口):

this.myclick=function(i) {
google.maps.event.trigger(gmarkers[i], 'click');
};

关于javascript - 谷歌地图 v3 从 map 外部的链接打开信息窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9078464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com