2014-01-22 5 views
3

Я пытаюсь реализовать карту, которая позволяет пользователям нарисовать на ней некоторые фигуры (круги, прямоугольники и полигоны), и эта часть работает прямо сейчас.Формы Google Maps - Как предотвратить перекрытие

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

Я много искал, и я не нашел рабочего примера нигде и не знал, как это сделать.

Можете ли вы, ребята, помочь, «это даже возможно сделать?

Спасибо!

+0

вы можете разместить ссылку jsFiddle или jsBin с тем, что у вас есть, пожалуйста? – Tsar

+1

Это действительно сложная проблема, особенно если вы не ограничиваете типы разрешенных форм. – geocodezip

+0

Что я имею прямо сейчас: 'http: // jsfiddle.net/2gr2t /' – BrunoG

ответ

1

Как вы можете узнать уже от https://developers.google.com/maps/documentation/javascript/drawing#drawing_events, есть обратные вызовы для рисования событий.

Когда чертеж завершен, вам необходимо выяснить, что новая форма сталкивается с существующими формами, которые сохраняются.

google.maps.event.addListener(
     drawingManager, 
     'overlaycomplete', 
     function(event) { 
      // calculate event.overlay is overlapped to another, which is saved. 
      // This part is difficult 
      var overlapped = true 
      if (overlapped) { 
       event.overlay.setMap(null); 
       delete event.overlay; 
      } else { 
       ZONES.overlays.push(event.overlay); // assuming ZONE.overlays are defined 
      } 
     } 
    ); 

Невозможно рассказать вам о обнаружении столкновений. Вы можете использовать его, хотя, «2D-обнаружение столкновения». Все дело в математике.

+0

Эта ссылка больше не действительна ... –

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