JavaScript — попытка создать кластер API карт Google из данных внешнего маркера php файла

Попытка создать кластер API карт Google из данных внешнего маркера php файла

Я пытаюсь отображать маркеры из местоположений в моей базе данных и кластеризовать их. Я могу отображать маркеры в порядке, но не могу понять, как создать массив из значений lat и long для кластера. Я собираю данные из внешнего файла PHP, как это так —

 function initMap() { var map = new google.maps.Map(document.getElementById('grid-map'), { var infoWindow = new google.maps.InfoWindow; downloadUrl('myfile.php', function(data) { var xml = data.responseXML; var markers = xml.documentElement.getElementsByTagName('marker'); Array.prototype.forEach.call(markers, function(markerElem) { // Returned marker data from php file // var id = markerElem.getAttribute('id'); var name = markerElem.getAttribute('title'); var city = markerElem.getAttribute('city'); // Lat and Long for each marker var point = new google.maps.LatLng( parseFloat(markerElem.getAttribute('lat')), parseFloat(markerElem.getAttribute('lng')) ); var marker; var iconBase = 'mysite.com/img/'; marker = new google.maps.Marker({ map: map, position: point, title: name, icon: iconBase   'loc.png' }); marker.addListener('click', function() { map.setZoom(14); map.setCenter(marker.getPosition()); }); marker.addListener('click', function() { infoWindow.setContent(infowincontent); infoWindow.open(map, marker); return marker; }); }); }); } 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() {} {amp}lt;script src="https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/markerclusterer.js"{amp}gt;{amp}lt;/script{amp}gt; 

Вот Кластерный звонок —

  // Add a marker cluster to manage the markers. var markerCluster = new MarkerClusterer(map, markers, {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m',zoomOnClick: false}); 

Вот цикл из myfile.php

 $sql = "SELECT * FROM `table`"; $result = $conn-{amp}gt;query($sql); if ($result-{amp}gt;num_rows {amp}gt; 0) { while($row = $result-{amp}gt;fetch_assoc()) { $id = $row['id']; $lat = $row['lat']; $lng = $row['lng']; $title =$row['post_title']; $city = $row['post_city']; $price = $row['post_price']; echo "{amp}lt;marker id='".$id."' price='".$price."' title='".$title."' city='".$city."' lat='".$lat."' lng='".$lng."' type='X'/{amp}gt;"; } } 

Я просто скопировал соответствующий код из моего файла, чтобы попытаться сохранить его читабельным, поэтому я могу пропустить скобку. В основном я думаю, что мне нужно создать массив координат для кластера, или есть способ кластеризации местоположений, поскольку они уже отображаются?

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector