Javascript 在php中正确显示地图信息窗口

Javascript 在php中正确显示地图信息窗口,javascript,php,json,google-maps,infowindow,Javascript,Php,Json,Google Maps,Infowindow,如何循环关联数组的值?现在我一次只能参加一个社团!这里我将传递给json_,对MySQL表中的所有值进行编码,只使用数组的lat&long-as数组和其他字符串。多谢各位 function myMap() { var infowindow = new google.maps.InfoWindow(); var mapOptions = { zoom: 5, center: new google.maps.LatLng(44.849716, 10.052282)

如何循环关联数组的值?现在我一次只能参加一个社团!这里我将传递给json_,对MySQL表中的所有值进行编码,只使用数组的lat&long-as数组和其他字符串。多谢各位

function myMap() {

  var infowindow = new google.maps.InfoWindow();

  var mapOptions = {
      zoom: 5,
      center: new google.maps.LatLng(44.849716, 10.052282),
      mapTypeId: 'roadmap',
      styles: []
  };

  var i = 0;
  var mapElement = document.getElementById('map');
  var map = new google.maps.Map(mapElement, mapOptions);
  var markers = <?= json_encode($this->getCoordinatesMaps[0]); ?>; //Passing the PHP values to JS


  var marker, i;
  //Add marker to map
  for(var i in markers) {
      var marker = markers[i];
      var marker = new google.maps.Marker({
          position: new google.maps.LatLng(marker.lat, marker.long),
          map: map,
          title: 'Niente',
          clickable: true
      });


      google.maps.event.addListener(marker, 'click', (function(marker, i) {
                    return function() {
                        infowindow.setContent(<?= json_encode($this->getCoordinatesMaps[0]->comune); ?> + ' - ' + <?= json_encode($this->getCoordinatesMaps[0]->mansione_tecnica); ?>);
                        infowindow.open(map, marker);
                    }
                })(marker, i));
      }
  }
函数myMap(){
var infowindow=new google.maps.infowindow();
变量映射选项={
缩放:5,
中心:新google.maps.LatLng(44.849716,10.052282),
mapTypeId:“路线图”,
样式:[]
};
var i=0;
var mapeelement=document.getElementById('map');
var map=new google.maps.map(mapElement,mapOptions);
var markers=;//将PHP值传递给JS
var标记,i;
//将标记添加到地图
for(标记中的变量i){
变量标记=标记[i];
var marker=new google.maps.marker({
位置:new google.maps.LatLng(marker.lat,marker.long),
地图:地图,
标题:“Niente”,
可点击:正确
});
google.maps.event.addListener(标记,'click',(函数(标记,i){
返回函数(){
infowindow.setContent(+'-'+);
信息窗口。打开(地图、标记);
}
})(marker,i));
}
}

setContent方法需要字符串。您正在传递多个参数

infowindow.setContent(标记[i].lat,标记[i].long)

正确的方法应该是:
infowindow.setContent('My content here')

setContent方法需要字符串。您正在传递多个参数

infowindow.setContent(标记[i].lat,标记[i].long)

正确的方法应该是:
infowindow.setContent('My content here')

这是我前面问题的解决方案。也许可以帮助尝试做同样事情的人。然后,我还添加了一个GET表单,以便轻松更改您在全球范围内看到工人的日期。:)

函数myMap(){
var infowindow=new google.maps.infowindow();
变量映射选项={
缩放:5,
中心:新google.maps.LatLng(44.849716,10.052282),
mapTypeId:“路线图”,
样式:[]
};
var mapeelement=document.getElementById('map');
var map=new google.maps.map(mapElement,mapOptions);
var markersArray='';//将PHP值传递给JS
markers=JSON.parse(markersArray);//读取数组值
//console.log(标记[1].comune);
var marker,i;//为infoWindow定义此函数
对于(var i=0;i”++'地址:'+markers[i]。地址+'事件名称:'+markers[i]。事件名称+'工作者:'+markers[i]。名称+'+markers[i]。姓氏+'工作:'+markers[i]。技术工作+'客户:+markers[i]。客户名称);
setOptions({maxWidth:300});
信息窗口。打开(地图、标记);
}
})(marker,i));
}

}

这是我上一个问题的答案。也许可以帮助尝试做同样事情的人。然后,我还添加了一个GET表单,以便轻松更改您在全球范围内看到工人的日期。:)

函数myMap(){
var infowindow=new google.maps.infowindow();
变量映射选项={
缩放:5,
中心:新google.maps.LatLng(44.849716,10.052282),
mapTypeId:“路线图”,
样式:[]
};
var mapeelement=document.getElementById('map');
var map=new google.maps.map(mapElement,mapOptions);
var markersArray='';//将PHP值传递给JS
markers=JSON.parse(markersArray);//读取数组值
//console.log(标记[1].comune);
var marker,i;//为infoWindow定义此函数
对于(var i=0;i”++'地址:'+markers[i]。地址+'事件名称:'+markers[i]。事件名称+'工作者:'+markers[i]。名称+'+markers[i]。姓氏+'工作:'+markers[i]。技术工作+'客户:+markers[i]。客户名称);
setOptions({maxWidth:300});
信息窗口。打开(地图、标记);
}
})(marker,i));
}

}

这不是一场比赛,至少不应该是。但是我不得不说,你必须尽可能快地调试和编写解决方案,这既有趣又有挑战性。虽然这并不意味着这将是一场竞争,但我必须说,你必须尽可能快地调试和编写解决方案,这既有趣又有挑战性。
可能有趣:)是的。我知道如何用“for”循环放置多个标记,但我没有成功地将它们的内容放在infoWindow@Rick中_Jellema@GiuseppeAlbrizio编辑并阐述你的观点
function myMap() {

    var infowindow = new google.maps.InfoWindow();

    var mapOptions = {
        zoom: 5,
        center: new google.maps.LatLng(44.849716, 10.052282),
        mapTypeId: 'roadmap',
        styles: []
    };

    var mapElement = document.getElementById('map');
    var map = new google.maps.Map(mapElement, mapOptions);

    var markersArray = '<?= json_encode($this->getCoordinatesMaps); ?>';//Passing the PHP values to JS
    markers = JSON.parse(markersArray); //Reading array values
    // console.log(markers[1].comune);

    var marker, i; //Defining this function for infoWindow

    for (var i = 0; i < markers.length; i++) {
    // console.log(markers[i].latlng.lat + ' is a ' + markers[i].latlng.long + '.');
    var marker = markers[i];
    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(markers[i].latlng.lat, markers[i].latlng.long),
        map: map,
        title: markers[i].surname + ' ' + markers[i].name,
        animation: google.maps.Animation.DROP,
        clickable: true
    });

    google.maps.event.addListener(marker, 'click', (function(marker, i) {
          return function() {
              infowindow.setContent("<div><img width='120' height='30' src='/images/logo.png'</div><hr />" + '<strong>Address: </strong> ' + markers[i].address + ' <strong>Event Name: </strong> ' + markers[i].event_name  + ' <strong>Worker: </strong> ' + markers[i].name+ ' ' + markers[i].surname + ' <strong>Work: </strong> ' + markers[i].technical_work + ' <strong>Client: </strong>' + markers[i].client_name);
              infowindow.setOptions({maxWidth: 300});
              infowindow.open(map, marker);
          }
      })(marker, i));
    }