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

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

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

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

3 ответов


интересный вопрос. Мне нравится Google maps api. Вот jsFiddle с вашим решением:

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

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

Боб

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


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

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


вам может быть интересно узнать о 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-squares обеспечивает дополнительный уровень функциональности над этими "родными" значениями в нескольких отношениях: i)система уменьшает широту и долготу (2 размерная переменная) к одномерной переменной, для удобства индексирования и последующего поиска ii) система сокращает избыточность многоточечных данных, которые поступают в пределах одного квадрата (один код, обозначающий "данные присутствуют", заменяет несколько индивидуальных значений для информации на уровне метаданных)...