Как преобразовать из лат в почтовый индекс или штат для создания картограммы - PullRequest
2 голосов
/ 11 марта 2011

У меня есть большая коллекция (и растущая) точек геопространственных данных (широта, долгота) (хранящихся в mongodb, если это помогает).Я хотел бы сгенерировать картографическую карту (http://vis.stanford.edu/protovis/ex/choropleth.html),, которая требует знания состояния, содержащего эту точку. Есть ли база данных или алгоритм, который может сделать это, не требуя вызова внешних API-интерфейсов (т.е. я знаю о таких вещах, какAPI карт Google).

Ответы [ 5 ]

3 голосов
/ 11 марта 2011

На самом деле, веб-приложение, на которое вы ссылались, содержит данные, которые вам нужны -

Если вы посмотрите на http://vis.stanford.edu/protovis/ex/us_lowres.js для каждого состояния, border [] содержит ломаную [lat, long], которая очерчивает состояние. Загрузите эти данные и проверьте точку-полигон - http://en.wikipedia.org/wiki/Point_in_polygon

За Обратное геокодирование без веб-доступа Вы можете значительно ускорить его, предварительно рассчитав ограничивающий прямоугольник для каждого состояния и проверяя только точку-полигон, если точка-ограничивающий прямоугольник.

1 голос
/ 11 марта 2011

вы можете попробовать использовать Geonames базу данных. Он имеет длинные / лат, а также город, почтовые и другие данные о типе местоположения. Это также бесплатно.

но если вам нужно разместить его локально или импортировать в свою собственную базу данных, USGS и NGA предоставляют полный список городов с широтой и долготой. Он обновляется регулярно, бесплатно и надежно.

  1. http://geonames.usgs.gov
  2. http://earth -info.nga.mil / GNS / html / index.html
1 голос
/ 11 марта 2011

Здесь , как это сделать на Фортране.Помните Фортран?И я нет.В любом случае, это выглядит довольно просто, так как каждый штат имеет свой собственный диапазон.

РЕДАКТИРОВАТЬ Мне было указано, что ваша отправная точка LAT-LONG, а не почтовый индекс.

Алгоритм преобразования лат-длинного в политическое деление называется «карта».Серьезно, это все обычная карта, отображение каждой точки в некотором диапазоне на деление, которому она принадлежит.Подробная цифровая карта всех 48 смежных состояний будет большой базой данных, и тогда вам понадобится некоторый (довольно простой) код для определения для каждого состояния (описанного как серия отрезков линий, очерчивающих границу), находилась ли данная точка внутри него.или вне.

0 голосов
/ 11 марта 2011

Если вы не возражаете против очень грубого решения, вы можете адаптировать карту кликов здесь .

0 голосов
/ 11 марта 2011

Не уверен, качество данных, но дать этому шанс: http://www.boutell.com/zipcodes/

...