Подтвердить что ты не робот

Сделать границы почтового индекса в API карт Google

Я видел все ответы на аналогичный вопрос, однако они все либо старые, либо никто не ответил на них.

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

Я пишу этот код в Javascript и используя API Карт Google. Я хочу, чтобы пользователь вводил почтовый индекс, а маркер опускался на место назначения с помощью границы, представляющей эту область почтового индекса. Я вижу, что в Google Maps в настоящее время есть что-то в своем карточном коде, что позволяет увидеть границы, если кто-то ставит почтовый индекс на maps.google.com. Я использовал полигоны, но это не помогло бы сделать границу вокруг определенного почтового индекса.

Любые предложения о том, как получить это?

Спасибо заранее!

4b9b3361

Ответ 1

Нелегко ответить на этот вопрос, о котором я знаю. Но вот разработка высокого уровня, как это сделать.

Все файлы формы для почтовых индексов можно найти на сайте переписи и загрузить с этого ftp-сервера. Однако, это тонна данных, поэтому вам нужно место для ее хранения. Я рекомендую использовать базу данных PostgreSQL с добавлением PostGIS. Он бесплатный, с открытым исходным кодом и в целом потрясающий. У него есть утилита для преобразования .shp файлов (типа в файлах формы переписи) в форму геометрии PostGIS. PostGIS позволяет извлекать фигуры в виде KML.

Вы можете либо a) получить форму из базы данных, как KML, когда это необходимо, и отобразить ее на карте, либо b) предварительно создать файл kml для каждого почтового индекса заблаговременно и получить файл по мере необходимости (это займет довольно много места).

Ответ 2

Вам нужно познакомиться с GeoJSON, отформатированными FeatureCollections. Вы можете отображать их на любом наборе фрагментов карты с помощью OpenLayers (или, возможно, с API Google).

Это может показаться довольно сложным, но вполне доступным.

Вы можете приобрести файлы GeoJSON для групп Zipcodes, если вы будете искать их.