Mysql 有人能告诉我为什么当我点击地图标记时会看到一个信息窗口吗?
下面是我的代码,它将从mysql中提取数据并在地图上显示标记。但是当我点击一个标记时,我无法获得显示的信息窗口。谢谢你的帮助 对infowindows的引用位于页面的最底部,靠近ajax引用之后的代码末尾 谢谢Mysql 有人能告诉我为什么当我点击地图标记时会看到一个信息窗口吗?,mysql,ajax,google-maps,Mysql,Ajax,Google Maps,下面是我的代码,它将从mysql中提取数据并在地图上显示标记。但是当我点击一个标记时,我无法获得显示的信息窗口。谢谢你的帮助 对infowindows的引用位于页面的最底部,靠近ajax引用之后的代码末尾 谢谢 if (markersArray) { for (i in markersArray) { markersArray[i].setMap(null); } markersArray.length = 0;
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
}
function LoadMarkers(encodedString)
{
var bounds = new google.maps.LatLngBounds();
var stringArray = [];
stringArray = encodedString.split("****");
var x;
for (x = 0; x < stringArray.length; x = x + 1)
{
var addressDetails = [];
var marker;
addressDetails = stringArray[x].split("&&&");
var lat = new google.maps.LatLng(addressDetails[1], addressDetails[2]);
var image = new google.maps.MarkerImage(addressDetails[3]);
var marker = new google.maps.Marker({
map: map,
icon: image,
position: lat,
content: addressDetails[0]
});
markersArray.push(marker);
google.maps.event.addListener( marker, 'click', function () {
closeInfos();
var info = new google.maps.InfoWindow({content: this.content});
info.open(map,this);
infos[0]=info;
});
bounds.extend(lat);
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(map);
}
}
}
map.fitBounds(bounds);
}
var geocoder;
var map;
var markersArray = [];
var infos = [];
geocoder = new google.maps.Geocoder();
var myOptions = {
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = null;//new google.maps.Map(document.getElementById("map_canvas"), myOptions);
jQuery(document).ready( function($){
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
LoadMarkers(document.getElementById("encodedString").value);
setInterval(function () {
jQuery.ajax({
url:'ajaxload.php',
type: "POST",
data: {'refreshed':true},
success: function(data)
{
LoadMarkers(data);
}
});
}, 10000);
//Manages the info windows
function closeInfos(){
if(infos.length > 0){
infos[0].set("marker",null);
infos[0].close();
infos.length = 0;
}
}
});
if(标记数组){
for(markersArray中的i){
markersArray[i].setMap(空);
}
markersArray.length=0;
}
函数加载标记(encodedString)
{
var bounds=new google.maps.LatLngBounds();
var stringArray=[];
stringArray=encodedString.split(“****”);
var x;
对于(x=0;x0){
infos[0]。设置(“标记”,空);
infos[0]。关闭();
infos.length=0;
}
}
});
函数LoadMarkers
在全局范围内定义,但函数closeInfos
在$.ready
-回调中本地定义。因此,在标记的
click
-处理程序中调用closeInfos()
失败,并停止进一步执行click
-处理程序
您必须使closeInfos
全局可访问:
window.closeInfos=function(){
if(infos.length > 0){
infos[0].set("marker",null);
infos[0].close();
infos.length = 0;
}
}