Я пытаюсь добавить группу маркеров к картам google каждый с информационным окном. Я использую сочетание php и javascript, чтобы сделать это, php получает все записи из базы данных, а затем javascript добавляет все маркеры на карту с координатами, взятыми из базы данных.
Вот что я имею до сих пор:
<script type="text/javascript"> function initialize() { var latlng = new google.maps.LatLng(<?=$lat?>, <?=$long?>); var settings = { zoom: 12, center: latlng, mapTypeControl: false, navigationControl: true, navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}, mapTypeId: google.maps.MapTypeId.ROADMAP}; var map = new google.maps.Map(document.getElementById("map_canvas"), settings); var postcodeLogo = new google.maps.MarkerImage('/images/postcode_marker.png', new google.maps.Size(32,37), new google.maps.Point(0,0), new google.maps.Point(15,34) ); var propertyLogo = new google.maps.MarkerImage('/images/property_marker.png', new google.maps.Size(32,37), new google.maps.Point(0,0), new google.maps.Point(15,34) ); var infowindow = new google.maps.InfoWindow(); <? foreach ($results as $grid_refs) { ?> var propPos = new google.maps.LatLng(<?=$grid_refs['grid_ref']?>); propMarker = new google.maps.Marker({ position: propPos, map: map, icon: propertyLogo, title:"<?=$grid_refs['sd_name']?>", zIndex: 3}); var contentString = '<div style="font-weight:bold;"><?=$grid_refs['sd_name']?></div><div><img src="www.imagelink.com/<?=$grid_refs['image_filename']?>"></div><div><a href="http://www.pagelink-<?=$grid_refs['property_id'];?>/" target="-blank">See full details</a></div>'; google.maps.event.addListener(propMarker, 'click', function() { infowindow.setContent(contentString); infowindow.open(map,this); }); <? } ?> var positionPos = new google.maps.LatLng(<?=$lat?>, <?=$long?>); var positionMarker = new google.maps.Marker({ position: positionPos, map: map, icon: postcodeLogo, title:"<?=$_GET['searchpostcode']?>", zIndex: 3}); } </script>
PositionMarker – это место, где пользователь вводит почтовый индекс, который они хотят выполнить. Промаркер отмечает все места на карте, которые затем показывают.
В коде отображается вся информация, однако на карте открывается каждое информационное окно с последней извлеченной записью – где я хочу, чтобы она загружала информацию, относящуюся к этому маркеру.
Я рассмотрел этот вопрос:
Google Maps infoWindow загружает только последнюю запись на маркеры
который будет работать, но я не могу получить js for loop, работающий с php foreach, я пробовал его в php foreach и за его пределами.
Я ДУМАЮ, что мне нужно, это цикл forearch, чтобы изменить имя переменной и contentString каждый раз, когда он создает маркер, но я могу показаться, что это работает?
Любая помощь очень ценится!