【问题标题】:Union of polygons represented as javascript array of geocoordinates表示为 javascript 坐标数组的多边形联合
【发布时间】:2015-05-07 21:59:36
【问题描述】:

我需要找到表示为 javascript 地理坐标数组的多边形的联合,如下面的代码所示:

           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 maps Javascript API v3 在 Google 地图上绘制生成的多边形,因此它们也可以像下面的代码一样进行结构化:

   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)
  ]

那么,我可以用什么来找到多边形的并集? 提前致谢。

编辑:这就是我所做的。我有一系列结构为多边形的 Voronoi 单元格(下图左侧)。我想要得到的是它们周围的边界(下图右侧的绿色多边形)。

所以,我想我可以通过联合操作得到它。有人可以帮忙吗?

【问题讨论】:

标签: javascript google-maps-api-3 polygons


【解决方案1】:

你可以这样做:

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

【讨论】:

  • 我编辑了问题的解释,如果您需要更多详细信息,请告诉我。
  • 它没有给我预期的结果,我仍然没有边界。我仍然有一些线和一些连接连接多边形的新线。我需要一个数学模型,它会删除它们之间的那些线并给我边界。
  • 我正在尝试找到 Voronoi 单元格周围的边界,这些单元格是这张图片上的红色单元格:prntscr.com/6deoau,蓝线是我通过这些多边形串联得到的。
  • 天哪,真是一团糟! ;-) 我想说多边形对我来说不是问题:imgur.com/0Zwl3hs
  • 我认为您需要使用 geometry library、containsLocation 和/或 isLocationOnEdge
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-05
  • 2013-08-28
  • 2021-02-02
  • 2013-08-24
  • 2017-11-04
  • 1970-01-01
相关资源
最近更新 更多