Как преобразовать адрес в широту / долготу?

Я полагаю, что вам нужно выполнить прямое заполнение на ffill с помощью DataFrame.mask для создания пропущенных значений для всех строк, по крайней мере, с одним NaN на DataFrame.any , а затем для отфильтровывать строки с не всеми пропущенными значениями в строке по DataFrame.all :

df = df.replace(0, np.nan)

m = df.isnull()
df1 = df.mask(m.any(axis=1)).ffill()
df2 = df.mask(m.all(axis=1), df1, axis=1)
print (df2)
       18    19    20
197  14.0  28.0  14.0
198  14.0   NaN  14.0
200  14.0  28.0  14.0
201  14.0  28.0  14.0
202  15.0  23.0  12.0
203  16.0   NaN  18.0
204  15.0  23.0  12.0
205  15.0  23.0  12.0

69
задан 18.04.2020, 02:38

12 ответов

Геокодер USC WebGIS свободен и предлагает несколько API, или можно загрузить базу данных для пакетной обработки онлайн.

-1
ответ дан 18.04.2020, 02:41

Можно использовать веб-сервисы MapPoint Microsoft.

я создал запись в блоге о том, как преобразовать адрес в GeoCode (lat/long).

0
ответ дан 18.04.2020, 02:42
  • 1
    @tslib: Каким образом? Это обходное решение довольно распространено. Если you' ре волновалось, что анонимная функция собирается сохранить вещи занятыми, I' m вполне уверенный, что это будет убито Сборщиком "мусора" как только " setTimeout" закончился с ним. – Steve Harrison 27.12.2019, 03:33
  • 2
    MapPoint API будет ликвидирован 18-го ноября. msdn.microsoft.com/en-us/library/cc514493.aspx – tsilb 18.04.2020, 02:42
  • 1
    @tsilb: Whoops— я записал Ваше имя пользователя неправильно в моем предыдущем комментарии! Извините! – Steve Harrison 27.12.2019, 03:32

веб-сервисы Карт Yahoo! - Геокодирование API точно геокодирует британские почтовые индексы, в отличие от API Google.

, К сожалению, Yahoo удержал от использования этот сервис, Вы могли посетить http://developer.yahoo.com/geo/placefinder/ для услуг Yahoo

11
ответ дан 18.04.2020, 02:43
  • 1
    Вопросы скорости, но к счастью Вы don' t должен записать в ассемблере для получения большой скорости для приложений. Кроме того, в значительной степени необходимо быть гуру блока, для избиения современного компилятора при оптимизации. – Pop Catalin 20.10.2019, 21:30
  • 2
    Мы нашли, что Yahoo был самым точным. – Mike Wills 18.04.2020, 02:44
  • 3
    @Mike; мы сделали также – chelmertz 18.04.2020, 02:44
  • 4
    Google' s API намного лучше в эти дни, чем это было в 2009. – Paul McMillan 18.04.2020, 02:45

Ничего особенного новое для добавления но у меня был большой реальный опыт в GIS и геокодирующий от предыдущего задания. Вот то, что я помню:

, Если бы это "время от времени" потребность в Вашем приложении, я определенно рекомендовал бы Google или Yahoo, Геокодирующий API, но осторожен для чтения их условий лицензирования.

я знаю, что Google Maps API в целом легко лицензировать даже для коммерческих веб-страниц, но не может использоваться в ситуации платы доступу. Другими словами, можно использовать его, чтобы рекламировать или предоставить услугу, которая управляет доходом от рекламы, но Вы не можете заряжать людей, чтобы получить доступ к Вашему сайту или даже поместить его позади системы пароля.

Несмотря на эти ограничения, они - оба отличный выбор, потому что они часто обновляют свои уличные базы данных. Большинство свободных инструментов бэкенда и библиотек используют перепись и данные дороги ТИГРА, которые нечасто обновляются, таким образом, Вы, менее вероятно, будете успешно геокодировать адреса в быстро растущих областях или новых подразделениях.

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

я не думаю, что этот был упомянут все же, но ESRI имеет веб-сервисы ArcWeb , которые включают геокодирование, хотя они не являются очень дешевыми. В прошлый раз, когда я использовал их, это стоило приблизительно 1.5 цента за поиск, но необходимо было предварительно оплатить определенную сумму для начала работы. Снова главное преимущество состоит в том, что дорожные данные, которые они используют, усовершенствованы своевременно, и можно использовать данные в коммерческих ситуациях, что Google не позволяет. Услуги ArcWeb также подадут спутниковые и воздушные фотографии с высоким разрешением а-ля Google Maps, снова оцененная на запрос.

, Если Вы хотите к самокрутке или имеете доступ к намного более точным данным, можно купить подписки к данным GIS компаний как TeleAtlas, но это не дешево. Можно купить только состояние или ценность графства данных, если потребности являются чрезвычайно местными. Существует несколько уровней данных - функции GIS только, GIS плюс подробные улицы, все, что плюс данные геокода, все это плюс поток трафика/direction/speed ограничивает для маршрутизации. Конечно, цена повышается, как Вы поднимаетесь уровни.

Наконец, статья Wikipedia о Геокодирование имеет некоторую хорошую информацию об алгоритмах и методах. Даже если Вы не делаете его в своем собственном коде, полезно знать, какие ошибки и точность можно ожидать от различных видов источников данных.

25
ответ дан 18.04.2020, 02:44

Google имеет геокодирование API, который, кажется, работает вполне прилично на большинство местоположений, для которых у них есть данные Google Maps.

http://googlemapsapi.blogspot.com/2006/06/geocoding-at-last.html

Они обеспечивают онлайн геокодирование (через JavaScript):

http://code.google.com/apis/maps/documentation/services.html#Geocoding

Или геокодирование бэкенда (с помощью Запроса HTTP):

http://code.google.com/apis/maps/documentation/services.html#Geocoding_Direct

данные обычно являются тем же, используемым самой Google Maps. (обратите внимание, что существуют некоторые исключения к этому, такие как Великобритания или Израиль, где данные из другого источника и немного уменьшенного качества)

47
ответ дан 18.04.2020, 02:44
  • 1
    эй, это прохладно. благодарит указать на него. – Arthur Thomas 18.04.2020, 02:45
  • 2
    Отметьте следование из FAQ Google Maps: "... и примечание, что использование геокодера для любой цели кроме получения местоположений, которые будут отображены с помощью API Google Maps, является нарушением Условий Обслуживания " – Dewayne Christensen 18.04.2020, 02:45

Виртуальная Земля делает это. Существует также веб-сервис в geocoder.us

2
ответ дан 18.04.2020, 02:45
  • 1
    все браузеры теперь поддерживают третий параметр setTimeout? – StefanoCudini 27.12.2019, 03:31

Вы могли также попробовать OpenStreetMap NameFinder (или ток Nominatim), который содержит открытый исходный код, подобные Wiki уличные данные для (потенциально) всего мира.

2
ответ дан 18.04.2020, 02:46
  • 1
    Ответ @StefanoCudini обновляется. – Luca Spiller 27.12.2019, 03:32
  • 2
    Средство поиска имени, кажется, ликвидировано, но Nominatim похож на большой инструмент:) – jasalguero 18.04.2020, 02:46

Вы хотите приложение геокодирования. Они доступны или онлайн или как бэкенд приложения.

2
ответ дан 18.04.2020, 02:47
  • 1
    Какое программное обеспечение Вы используете @Simucal? – Alexander Suraphel 20.10.2019, 21:28

Прокрутив мое собственное решение для этого прежде, я могу целый сердечно рекомендовать Гео-:: Кодер:: США модуль Perl для этого. Просто загрузите все данные переписи и используйте включенное средство импорта, чтобы создать DB Беркли для Вашей страны и указать на сценарий Perl на него. Использование модуль, создал в парсинге адреса, и там у Вас есть он: офлайновая система геокодирования!

5
ответ дан 18.04.2020, 02:48
  • 1
    Мне бы хотелось выбрать несколько ответов. – claws 20.10.2019, 21:28

Когда Вы преобразовываете адрес или возражаете против lat/long, это называют, Геокодируя.

вокруг существует много решений для геокодирования. Решение прямо для Вашего проекта будет зависеть от приемлемости условий лицензирования каждого решения для геокодирования. И Microsoft Virtual Earth и Google Maps предлагают решения, которые являются бесплатными использовать под очень строгие лицензии...

http://code.google.com/apis/maps/documentation/services.html

http://www.microsoft.com/virtualearth/product/faq.aspx

5
ответ дан 18.04.2020, 02:49
  • 1
    Вы могли бы хотеть добавить ссылку к MikeOS также. Это - маленькая операционная система, записанная в блоке, который разработан как средство обучения, чтобы видеть, как работают простые операционные системы. Это хорошо прокомментировало код и документацию: mikeos.berlios.de – mmcdole 20.10.2019, 21:27

Maptsraction ( http://www.mapstraction.com ) позволяет Вам выбрать между любым количеством геокодирования сервисов. Это могло быть полезно, если необходимо сделать большие количества, поскольку я знаю, что Google имеет предел тому, сколько можно сделать день.

2
ответ дан 18.04.2020, 02:49

Теги

Похожие вопросы