2015-03-06 2 views
4

Мне нужно найти объединение многоугольников, представленных в виде яваскрипта массивов geocoordinates, как в коде ниже:Союз многоугольников, представленных в яваскрипта массив geocoordinates

  var polygon1 = [[51.49151151647854, -0.20633749635419463], 
       [51.491517887745886, -0.20663465247037038], 
       [51.49125377257769, -0.20707803457401042], 
       [51.49125377257769, -0.20707803457401042], 
       [51.49090541057069, -0.2071046417369189], 
       [51.490605858341326, -0.20637621141179352], 
       [51.49081102624578, -0.20598780005047956], 
       [51.490859930095496, -0.20592173450688733]] 


      var polygon2 = [[51.492223312188386, -0.20784254067885688], 
       [51.49226262897666, -0.20812681455816695], 
       [51.49162516066342, -0.2090258514344801], 
       [51.491538051645385, -0.2089717941050469], 
       [51.49200661100099, -0.20759325088262348]] 

Я бы нарисовать что полученный многоугольник на Google карте с Google картами Javascript API v3, поэтому они могут быть структурированы как в коде сильфона, тоже:

var googleMapPolygon1 = [ 
     new google.maps.LatLng(51.49151151647854, -0.20633749635419463), 
     new google.maps.LatLng(51.491517887745886, -0.20663465247037038), 
     new google.maps.LatLng(51.49125377257769, -0.20707803457401042), 
     new google.maps.LatLng(51.49090541057069, -0.2071046417369189), 
     new google.maps.LatLng(51.490605858341326, -0.20637621141179352), 
     new google.maps.LatLng(51.49081102624578, -0.20598780005047956), 
     new google.maps.LatLng(51.490859930095496, -0.20592173450688733), 
     new google.maps.LatLng(51.49151151647854, -0.20633749635419463) 
    ]; 

    var googleMapPolygon2 = [ 
     new google.maps.LatLng(51.492223312188386, -0.20784254067885688), 
     new google.maps.LatLng(51.49226262897666, -0.20812681455816695), 
     new google.maps.LatLng(51.49162516066342, -0.2090258514344801), 
     new google.maps.LatLng(51.491538051645385, -0.2089717941050469), 
     new google.maps.LatLng(51.49200661100099, -0.20759325088262348), 
     new google.maps.LatLng(51.492223312188386, -0.20784254067885688) 
    ] 

Итак, что я мог бы использовать для нахождения объединения полигонов? Спасибо заранее.

EDIT: Это то, что я делаю. У меня есть массив ячеек Вороного, структурированных как многоугольники (слева внизу снизу). И то, что я пытаюсь получить, является границей вокруг них (зеленый многоугольник справа от рисунка ниже). enter image description here

Итак, я думаю, что могу получить его с помощью операции объединения. Может ли кто-нибудь помочь?

+2

Ваша картинка не [соответствовать данным, которые были указаны] (http://jsfiddle.net/c35wo7rh/), два многоугольников полностью разделены, не имеют вершин в общем. Вы посмотрели на [JSTS] (https://github.com/bjornharrtell/jsts)? – geocodezip

+0

Можете ли вы предоставить более полный пример? Предпочтительно [Минимальный, полный, проверенный и читаемый пример] (http://stackoverflow.com/help/mcve), который показывает проблему. – geocodezip

+0

JSTS помогли. Я использовал это как ссылку: http://stackoverflow.com/questions/24064125/googlemaps-api-v3-build-polygon-containing-multiple-zipcodes – karakulj

ответ

-2

Вы можете просто сделать:

var polygon1 = [[51.49151151647854, -0.20633749635419463], 
       [51.491517887745886, -0.20663465247037038], 
       [51.49125377257769, -0.20707803457401042], 
       [51.49125377257769, -0.20707803457401042], 
       [51.49090541057069, -0.2071046417369189], 
       [51.490605858341326, -0.20637621141179352], 
       [51.49081102624578, -0.20598780005047956], 
       [51.490859930095496, -0.20592173450688733]]; 

var polygon2 = [[51.492223312188386, -0.20784254067885688], 
       [51.49226262897666, -0.20812681455816695], 
       [51.49162516066342, -0.2090258514344801], 
       [51.491538051645385, -0.2089717941050469], 
       [51.49200661100099, -0.20759325088262348]]; 

var union = new google.maps.Polygon({ 
    paths: polygon1.concat(polygon2) 
}); 
+0

Я отредактировал объяснение вопроса, пожалуйста, скажите мне, если вам нужно больше деталей. – karakulj

+0

Я обновил ответ – duncan

+0

Это не дает мне ожидаемого результата, у меня все еще нет границы. У меня все еще есть линии между и некоторые новые линии, которые соединяют конкатенированные многоугольники. Мне нужна математическая модель, которая удалит эти линии между ними и даст мне границу. – karakulj

Смежные вопросы