Отображать карты infoWindow правильно в php - PullRequest
0 голосов
/ 29 мая 2018

Как я могу переключаться между значениями ассоциативного массива?Теперь я могу принять только одну ассоциацию одновременно!Здесь я передаю в json_encode все значения из таблицы MySQL, используя только lat & long как массив массива и другие строки.Спасибо

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));
      }
  }

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вот решение моего предыдущего вопроса.Может быть, может помочь кто-то пытается сделать то же самое.Затем я также добавляю форму GET, чтобы легко изменить дату, когда вы увидите работника по всему миру.:)

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));
    }

}

0 голосов
/ 29 мая 2018

Для метода setContent требуется строка.Вы передаете несколько аргументов

infowindow.setContent(markers[i].lat, markers[i].long);

Правильный путь должен быть: infowindow.setContent('My content here');

...