дерново js неожиданных форм с разницей многоугольников () - PullRequest
4 голосов
/ 13 января 2020

После реализации difference() для моей карты многоугольника, я обнаруживаю, что когда я увеличиваю карту, появляются или исчезают неожиданные фигуры, которых там быть не должно. Существуют полигоны типа MultyPolygon и Polygon, и я сравниваю их и даже проверяю длину координат многоугольника, но это не помогло.

let previousFeature = {}
let x    
for(x = 0;x < second_features.length; x++){
 if (x === 0) {
  previousFeature = second_features[x]
 } else {
 if (previousFeature.geometry.coordinates.length === 
  second_features[x].geometry.coordinates.length)
 {
  second_features[x - 1] = difference(previousFeature.geometry, second_features[x].geometry)
 }
  second_features[x - 1].properties.time_distance = previousFeature.properties.time_distance
  second_features[x - 1].properties.gid = previousFeature.properties.gid
  previousFeature = second_features[x]
}

Появляется неожиданная форма, которая пересекает многоугольники при масштабировании увеличение и уменьшение.

1 Ответ

1 голос
/ 20 января 2020

Я нашел местоположение geographi c в OSM , но мне не удалось угадать, какие белые линии и синие многоугольники наложены на эту карту. Если вы говорите о «неожиданной форме», я полагаю, вы имеете в виду синий треугольник, который пересекает белые линии?

Некоторые (общие) предположения, почему полигоны могут выглядеть иначе, чем ожидалось:

  1. Может ли быть так, что вы наблюдаете артефакт процедуры рендеринга? Некоторые процедуры рендеринга автоматически упрощают полигоны, удаляя когда-либо x -ую опорную точку, причем x увеличивается при увеличении коэффициента масштабирования: Другими словами: при максимальном увеличении точки не удаляются, при небольшом уменьшении больше и больше точек многоугольника удаляются. Может случиться так, что вы увидите только при максимальном уровне масштабирования реальную форму многоугольника.

  2. Может быть, вы не закрыли свой полигон (ы)? Это также может привести к странным эффектам при рендеринге для некоторых библиотек.

Open Street Map Image

Дальнейшее чтение

...