Как нарисовать прямоугольную область на большой карте Google и запросить базу данных, чтобы найти местоположения / точки, которые существуют внутри прямоугольника? - PullRequest
8 голосов
/ 06 марта 2011

У меня есть приложение, в котором я хотел бы представить конечному пользователю карту Google и позволить ему выбрать область карты с помощью простого прямоугольного инструмента рисования, а затем сохранить все местоположения в базе данных клиента. которые попадают в эту прямоугольную область выделения, отображаются в виде точек на карте ...

У меня простое понимание карт Google, и я могу заставить карты Google отображать все местоположения в базе данных без проблем ... Моя проблема заключается в том, что конечный пользователь может нарисовать прямоугольник. Не уверен, как это реализовать.

Может кто-нибудь объяснить или связать меня с примером того, как это делается?

Ответы [ 3 ]

11 голосов
/ 26 мая 2012

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

Я должен сказать, что использование инструментов рисования API дает лучший пользовательский опыт, чем решение @rcravens. Вот очень специфическая реализация, которая позволяет вам «выбрать» область на карте, нарисовав прямоугольник или многоугольник, а затем проверить, находится ли маркер внутри фигуры: http://jsfiddle.net/JsAJA/306/.

6 голосов
/ 07 марта 2011

Интересный вопрос.Я люблю API Google Maps.Вот jsFiddle с вашим решением:

http://jsfiddle.net/JsAJA/2/

Вам нужно будет запросить в вашей базе данных точки между минимальным / максимальным латом и lngs.Надеюсь, это поможет.

Боб

PS Обратите внимание, что это нарушает естественный пользовательский интерфейс карт Google.Карта больше не перетаскивается при наведении мыши.Это требует лучшего пользовательского опыта.

0 голосов
/ 08 декабря 2011

Возможно, вам будет интересно узнать о Csquares, который кодирует lat, lon в текстовую строку, которую можно вставить в индексированный столбец.

Я перенес общедоступную логику кодирования Csquare в Java и Javascript.
Дайте мне знать, если хотите.

http://www.cmar.csiro.au/csquares/csq-faq.htm#10

ВЫПИСКА

  1. Что такое c-квадраты и для чего он служит?

C-квадраты означают «Краткая пространственная система запросов и представлений» и представляют собой метод индексации географического положения объектов или данных наблюдений на поверхности земли в простом буквенно-цифровом формате, подходящем для последующий запрос любой текстовой системой или поисковой системой. , , , Кроме того, c-квадраты могут быть определены в широком диапазоне масштабов: от 10 x 10 градусов (около 1000 км) до 5 x 5 градусов (500 км), 1 x 1 градус (100 км), 0,5 x 0,5 градуса (50 км), 0,1 x 0,1 градуса (10 км) и т. Д. В соответствии с требованиями пользователя.

  1. Кто может извлечь выгоду из использования c-квадратов?

Любой, кто заинтересован в хранении, обмене и извлечении данных или информации с географическим компонентом, кто не хочет переходить на уровень сложности полноценной географической информационной системы (ГИС) просто чтобы иметь возможность искать их данные по географическому положению ...

  1. Почему бы просто не хранить и не указывать значения широты и долготы с определенным элементом данных?

Отдельные значения широты и долготы могут и в большинстве случаев будут сохраняться с конкретными элементами данных (объектами с географической привязкой). C-квадраты обеспечивают дополнительный уровень функциональности сверх этих «нативных» значений в нескольких отношениях: (i) система сокращает широту и долготу (двумерную переменную) до одномерной переменной для упрощения индексации и последующего поиска (ii) система уменьшает избыточность для многоточечных данных, которые находятся в пределах одного квадрата (один код, обозначающий «данные присутствуют», заменяет несколько отдельных значений для информации уровня метаданных) ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...