Подковообразный многоугольник - PullRequest
2 голосов
/ 19 ноября 2011

У меня есть следующий многоугольник kml:

<Polygon><outerBoundaryIs><LinearRing><coordinates>20.002,80.002 20,80.002 20,80.004 20.006,80.004 20.006,80.001 20.002,80.001 20.002,80.002 20.004,80.002 20.004,80.003 20.002,80.003 </coordinates></LinearRing></outerBoundaryIs></Polygon>

Если я вижу этот многоугольник в ячейке в моей таблице fusion, в табличном представлении Google Fusion Maps он выглядит следующим образом:

enter image description here

Однако на реальной карте Google в представлении карты это выглядит следующим образом:

enter image description here

Дублированная точка была довольнодосадно упал.Я хочу то, что показано на первой диаграмме выше, но как мне изменить мой многоугольник, чтобы получить ту же форму на картах Google?

Я тоже пытался с внутренней границей, но и тут не повезло:

enter image description here

<Polygon><outerBoundaryIs><LinearRing><coordinates>20.002,80.002 20,80.002 20,80.004 20.006,80.004 20.006,80.001 20.002,80.001 20.002,80.002 20.004,80.002 20.004,80.003 20.002,80.003 </coordinates></LinearRing></outerBoundaryIs></Polygon>

Спасибо,

Барри

Ответы [ 2 ]

1 голос
/ 20 ноября 2011

Самопересекающимся полигонам для правильного рисования требуется совсем немного дополнительной мощности, поэтому они не широко поддерживаются во всех API / реализациях рендеринга 2d.

Я предлагаю вам обойти эту проблему, разбив свой полигон надве части.

0 голосов
/ 20 ноября 2011

Хорошо, я думаю, что у меня есть ответ.Я могу добавить крошечное смещение (дрожание) к одной из двух повторяющихся точек в многоугольнике.Однако я должен добавить джиттер в правильном направлении, иначе полигон станет недействительным, и Google больше не будет его рисовать.Глядя на предыдущие точки в многоугольном цикле, я смогу определить, в каком направлении мне нужно применить джиттер.

<Polygon><outerBoundaryIs><LinearRing><coordinates>20.002,80.002 20,80.002 20,80.004 20.006,80.004 20.006,80.001 20.002,80.001 20.002000001,80.002 20.004,80.002 20.004,80.003 20.002,80.003 </coordinates></LinearRing></outerBoundaryIs></Polygon> 
...