Все полигоны на карте Google отображаются как один полигон - PullRequest
0 голосов
/ 24 октября 2018

У меня есть эти Lat и Lon, и я проанализировал их с помощью PHP из базы данных MySQL.

Как я могу перебрать эти lat,lon пары на основе ORIGF_ID, чтобы показать их как многоугольникив Google Maps?

<markers>
<marker ORIGF_ID="1" OBJECTID="1" lat="34.5127" lng="69.3182"/>
<marker ORIGF_ID="1" OBJECTID="2" lat="34.5128" lng="69.3174"/>
<marker ORIGF_ID="1" OBJECTID="3" lat="34.5134" lng="69.3175"/>
<marker ORIGF_ID="1" OBJECTID="4" lat="34.5133" lng="69.3183"/>
<marker ORIGF_ID="1" OBJECTID="5" lat="34.5127" lng="69.3182"/>
<marker ORIGF_ID="2" OBJECTID="6" lat="34.5145" lng="69.3099"/>
<marker ORIGF_ID="2" OBJECTID="7" lat="34.5144" lng="69.3104"/>
<marker ORIGF_ID="2" OBJECTID="8" lat="34.5139" lng="69.3104"/>
<marker ORIGF_ID="2" OBJECTID="9" lat="34.514" lng="69.3099"/>
<marker ORIGF_ID="2" OBJECTID="10" lat="34.5145" lng="69.3099"/>
</markers>

У меня есть эти коды, но показаны 2 многоугольника, соответствующих ORIGF_ID из 1 и 2, но они отображаются как один многоугольник.

Проанализировал xml с php

var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");

Коды полигонов, которые зацикливаются на основе ORIGF_ID:

  var path=[];
  var paths=[];

  for (var i=0; i<markers.length; i++) 
  {
    var lat = markers[i].getAttribute('lat');
    var lng = markers[i].getAttribute('lng');
    var pt = new google.maps.LatLng(lat, lng);
    var FID = markers[i].getAttribute('ORIG_FID');
    if (!paths[FID])
       paths[FID] = [];
    paths[FID].push(pt);

  }

  for (var path in paths) 
  {
    if (paths.hasOwnProperty(path)) {
      path = paths[path];

      // Construct the polygon.
      var polygon = new google.maps.Polygon({
        paths: path,
        strokeColor: '#FF0000',
        strokeOpacity: 0.8,
        strokeWeight: 3,
        fillColor: '#FF0000',
        fillOpacity: 0.35`});

      polygon.setMap(map);
      // Add a listener for the click event.
      polygon.addListener('click', showArrays);
    }
  }

  infoWindow = new google.maps.InfoWindow;

});
}

ajax-коды, использующие файл php:

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() {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...