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
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. (обратите внимание, что существуют некоторые исключения к этому, такие как Великобритания или Израиль, где данные из другого источника и немного уменьшенного качества)
Вы хотите приложение геокодирования. Они доступны или онлайн или как бэкенд приложения.
Онлайн-приложения:
геокодирования:
Виртуальная Земля делает это. Существует также веб-сервис в geocoder.us
Maptsraction ( http://www.mapstraction.com ) позволяет Вам выбрать между любым количеством геокодирования сервисов. Это могло быть полезно, если необходимо сделать большие количества, поскольку я знаю, что Google имеет предел тому, сколько можно сделать день.
Когда Вы преобразовываете адрес или возражаете против lat/long, это называют, Геокодируя.
вокруг существует много решений для геокодирования. Решение прямо для Вашего проекта будет зависеть от приемлемости условий лицензирования каждого решения для геокодирования. И Microsoft Virtual Earth и Google Maps предлагают решения, которые являются бесплатными использовать под очень строгие лицензии...
http://code.google.com/apis/maps/documentation/services.html
Прокрутив мое собственное решение для этого прежде, я могу целый сердечно рекомендовать Гео-:: Кодер:: США модуль Perl для этого. Просто загрузите все данные переписи и используйте включенное средство импорта, чтобы создать DB Беркли для Вашей страны и указать на сценарий Perl на него. Использование модуль, создал в парсинге адреса, и там у Вас есть он: офлайновая система геокодирования!
веб-сервисы Карт Yahoo! - Геокодирование API точно геокодирует британские почтовые индексы, в отличие от API Google.
, К сожалению, Yahoo удержал от использования этот сервис, Вы могли посетить http://developer.yahoo.com/geo/placefinder/ для услуг Yahoo
Ничего особенного новое для добавления но у меня был большой реальный опыт в GIS и геокодирующий от предыдущего задания. Вот то, что я помню:
, Если бы это "время от времени" потребность в Вашем приложении, я определенно рекомендовал бы Google или Yahoo, Геокодирующий API, но осторожен для чтения их условий лицензирования.
я знаю, что Google Maps API в целом легко лицензировать даже для коммерческих веб-страниц, но не может использоваться в ситуации платы доступу. Другими словами, можно использовать его, чтобы рекламировать или предоставить услугу, которая управляет доходом от рекламы, но Вы не можете заряжать людей, чтобы получить доступ к Вашему сайту или даже поместить его позади системы пароля.
Несмотря на эти ограничения, они - оба отличный выбор, потому что они часто обновляют свои уличные базы данных. Большинство свободных инструментов бэкенда и библиотек используют перепись и данные дороги ТИГРА, которые нечасто обновляются, таким образом, Вы, менее вероятно, будете успешно геокодировать адреса в быстро растущих областях или новых подразделениях.
большинство сервисов также ограничивает количество геокодирования запросов, которые можно сделать в день, таким образом, нормально искать адреса, скажем, новых клиентов, которые добавляются к базе данных, но если Вы выполняете пакетное задание, которое подает тысячи адресов от Вашей базы данных в геокодер, Вы собираетесь получить отключение.
я не думаю, что этот был упомянут все же, но ESRI имеет веб-сервисы ArcWeb , которые включают геокодирование, хотя они не являются очень дешевыми. В прошлый раз, когда я использовал их, это стоило приблизительно 1.5 цента за поиск, но необходимо было предварительно оплатить определенную сумму для начала работы. Снова главное преимущество состоит в том, что дорожные данные, которые они используют, усовершенствованы своевременно, и можно использовать данные в коммерческих ситуациях, что Google не позволяет. Услуги ArcWeb также подадут спутниковые и воздушные фотографии с высоким разрешением а-ля Google Maps, снова оцененная на запрос.
, Если Вы хотите к самокрутке или имеете доступ к намного более точным данным, можно купить подписки к данным GIS компаний как TeleAtlas, но это не дешево. Можно купить только состояние или ценность графства данных, если потребности являются чрезвычайно местными. Существует несколько уровней данных - функции GIS только, GIS плюс подробные улицы, все, что плюс данные геокода, все это плюс поток трафика/direction/speed ограничивает для маршрутизации. Конечно, цена повышается, как Вы поднимаетесь уровни.
Наконец, статья Wikipedia о Геокодирование имеет некоторую хорошую информацию об алгоритмах и методах. Даже если Вы не делаете его в своем собственном коде, полезно знать, какие ошибки и точность можно ожидать от различных видов источников данных.
Вы могли также попробовать OpenStreetMap NameFinder (или ток Nominatim), который содержит открытый исходный код, подобные Wiki уличные данные для (потенциально) всего мира.
Геокодер USC WebGIS свободен и предлагает несколько API, или можно загрузить базу данных для пакетной обработки онлайн.
Можно использовать веб-сервисы MapPoint Microsoft.
я создал запись в блоге о том, как преобразовать адрес в GeoCode (lat/long).