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

class First(object):
  def __init__(self, a):
    print "first", a
    super(First, self).__init__(20)

class Second(object):
  def __init__(self, a):
    print "second", a
    super(Second, self).__init__()

class Third(First, Second):
  def __init__(self):
    super(Third, self).__init__(10)
    print "that's it"

t = Third()

Выход -

first 10
second 20
that's it

Call to Third () определяет init, определенный в третьем. И вызов super в этой процедуре вызывает init, определенный в First. MRO = [Первый, Второй]. Теперь вызов super в init, определенный в First, продолжит поиск MRO и найдет init, определенный во втором, и любой вызов super ударит объект init по умолчанию. Надеюсь, этот пример прояснит концепцию.

Если вы не называете super от First. Цепь останавливается, и вы получите следующий результат.

first 10
that's it
69
задан animuson 24 October 2013 в 03:35
поделиться

12 ответов

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
ответ дан Allain Lalonde 24 October 2013 в 14:35
поделиться

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

2
ответ дан Christopher Currie 24 October 2013 в 14:35
поделиться
  • 1
    Какое программное обеспечение Вы используете @Simucal? – Alexander Suraphel 19 May 2012 в 03:37
  • 1
    @tsilb: Whoops— я записал Ваше имя пользователя неправильно в моем предыдущем комментарии! Извините! – Steve Harrison 9 July 2009 в 15:18

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

2
ответ дан Charles Graham 24 October 2013 в 14:35
поделиться
  • 1
    все браузеры теперь поддерживают третий параметр setTimeout? – StefanoCudini 18 February 2013 в 05:35

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

2
ответ дан ian93 24 October 2013 в 14:35
поделиться

Когда Вы преобразовываете адрес или возражаете против 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
ответ дан 24 October 2013 в 14:35
поделиться
  • 1
    Вы могли бы хотеть добавить ссылку к MikeOS также. Это - маленькая операционная система, записанная в блоке, который разработан как средство обучения, чтобы видеть, как работают простые операционные системы. Это хорошо прокомментировало код и документацию: mikeos.berlios.de – mmcdole 1 December 2009 в 06:13

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

5
ответ дан willasaywhat 24 October 2013 в 14:35
поделиться

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

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

11
ответ дан John Royceton Arthur 24 October 2013 в 14:35
поделиться
  • 1
    Вопросы скорости, но к счастью Вы don' t должен записать в ассемблере для получения большой скорости для приложений. Кроме того, в значительной степени необходимо быть гуру блока, для избиения современного компилятора при оптимизации. – Pop Catalin 28 November 2009 в 03:23

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

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

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

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

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

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

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

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

25
ответ дан CMPalmer 24 October 2013 в 14:35
поделиться

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

2
ответ дан Community 24 October 2013 в 14:35
поделиться

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

-1
ответ дан 24 October 2013 в 14:35
поделиться

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

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

0
ответ дан Stephen Curial 24 October 2013 в 14:35
поделиться
  • 1
    @tslib: Каким образом? Это обходное решение довольно распространено. Если you' ре волновалось, что анонимная функция собирается сохранить вещи занятыми, I' m вполне уверенный, что это будет убито Сборщиком "мусора" как только " setTimeout" закончился с ним. – Steve Harrison 9 July 2009 в 04:16
Другие вопросы по тегам:

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