Тестовые полигоны перекрываются в Google Maps

В моем проекте у меня есть карта с большим количеством нарисованных полигонов. Каждый полигон представлен как MVCArray.

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

  • Если пользователь щелкнет по карте, появится новый маркер: он будет связан с временным предшественником и созданным первым маркером.
  • Если пользователь нажмет на маркер, он будет удален, и между предшественником и преемником маркера будет установлена ​​новая связь.

Я не хочу, чтобы пользователь рисовал другой полигон на карте. Либо вновь созданный маркер находится на другом полигоне, либо линия соединения, созданная новым маркером (или в результате удаления другого маркера), проходит над другим полигоном.

Может ли кто-нибудь помочь мне или дать мне подсказку?


person Marco Fedele    schedule 26.02.2013    source источник


Ответы (1)


Наивный тест перекрытия будет проходить по краям ваших полигонов и проверять пересечение линии-линии. .

Судя по всему, у вас может быть слишком много преимуществ, чтобы это могло быть эффективным само по себе в реальном времени. Оттуда ваша стратегия должна быть сосредоточена на быстром отбрасывании полигонов/ребер, которые не нужно сравнивать, прежде чем вы проверите пересечение линий. Взгляните на ограничивающие круги и устранение кубических деревьев, если вам нужны идеи.

person MrLeap    schedule 26.02.2013
comment
Каждый полигон имеет ограничение по площади, поэтому я могу отфильтровать ближайший и применить этот тест на перекрытие... Но вы уверены, что я могу сделать такой простой тест, используя в качестве основы сфероид, такой как земля? - person Marco Fedele; 26.02.2013