Чи є якісь безкоштовні або доступні за ціною бази даних для США, в яких можна шукати та повертати інформацію про широту та довготу?
Чи є якісь безкоштовні або доступні за ціною бази даних для США, в яких можна шукати та повертати інформацію про широту та довготу?
Відповіді:
Для такої кількості записів навіть не враховуйте веб-сервіс. Вони придушать або відріжуть вас, перш ніж ви зможете закінчити своє завдання.
Тоді ваш варіант стає запускати його локально, і для цього у вас є кілька комерційних або безкоштовних варіантів.
Безкоштовні параметри використовуватимуть набір даних TIGER перепису, який вам потрібно буде завантажити в просторову базу даних. Ви можете знайти бібліотеки, які геокодують проти TIGER для PostGIS або навіть sqlite . Чорт ви можете навіть використовувати ArcGIS для геокодування проти TIGER. Звичайно, ArcGIS не є безкоштовним, що підводить мене до наступних комерційних варіантів. Якщо у вас є ліцензія на ArcGIS, у вас є DVD StreetMap з набором даних TeleAtlas ( я маю на увазі Том Том ) або Navteq. Це залежить від наявності пакетів StreetMap Premium . Будь-який із цих двох наборів даних, ймовірно, дасть вам більш стійкі результати, ніж TIGER.
Зробіть собі послугу і зробіть кілька копій вуличної бази даних після завантаження ваших даних і запустіть процес геокодування на декількох машинах із підмножиною вхідних даних. Не намагайтеся запустити його лише на одній машині, інакше ви будете чекати днів, коли він закінчиться, не кажучи вже про те, що, швидше за все, будь-який процес, який ви запустите, він, ймовірно, просочиться пам’яттю і вийде з ладу кілька разів, перш ніж він закінчиться. Це означає, що ви хочете мати різні контрольні точки для свого процесу.
Я працюю в SmartyStreets (компанія, що підтверджує адреси). Наш сервіс безкоштовний для всіх (до базового рівня). Стартапи також можуть просити користуватися нашою послугою абсолютно безкоштовно протягом першого року. Тож якщо ви підходите до цієї класифікації, ми не беремо плати за наше необмежене обслуговування протягом року.
Ragi рекомендує проти веб-сервісу, однак наш API може легко очистити, стандартизувати та геокодувати 20 мільйонів адрес для вас приблизно за 5 годин (приблизно 1000 в секунду). Деякий з цього часу залежатиме від швидкості роботи вашої машини (скільки ядер у вас є) та мережевого підключення (не пробуйте це через 3G, але стандартне широкосмугове з'єднання буде чудово).
Просто хотів зазначити, що це, безумовно, можливо за допомогою веб-сервісу.
Оновлення: Станом на 1 серпня 2017 року я дистанційно перевіряв нашу веб-службу і отримував постійні 70 000 пошукових записів за секунду, використовуючи лише один MacBook Pro 2015 у бездротовій мережі. Так, це досить швидко. Це означає, що невеликий список, як 20 мільйонів адрес, займе лише 5 хвилин.
Я використав цей посібник, описуючи, як створити геокодер постгігів за допомогою даних TigerLine 2010 року. Я зараз запускаю це - це не швидко, оскільки для геокодування 2 мільйонів адрес потрібно три тижні.
Однак це безкоштовно, не закручене, і для того, щоб розпочати геокодування, хтось із мінімальними навичками кодування та розміщення пошти менше 2 днів налаштовує та завантажує дані одного (великого) стану. Я також не робив абсолютно ніякої налаштування постгресів для системи, і вона працює над монтажами NFS, тому я підозрюю, що є один-два порядки, що мають значення підвищення продуктивності, я міг би вийти з неї, якщо мені потрібно.
Замість використання веб-служб я завантажував усі свої адреси в базу даних postgres, а потім запускаю швидкий і брудний сценарій perl, щоб геокодувати їх усі по одному:
perl -e for ($i=1; $i<[max_key_value]; $i+=1)
{printf "UPDATE source_addresses
SET (rating, new_address, lon, lat)
= (g.rating, pprint_addy(g.addy),
ST_X(g.geomout), ST_Y(g.geomout) )
FROM (SELECT DISTINCT ON (address_id) address_id, (g1.geo).*
FROM (SELECT address_id, (geocode(address)) As geo
FROM source_addresses As ag
WHERE ag.rating IS NULL and address_id = $i
) As g1
ORDER BY address_id, rating LIMIT 1
) As g WHERE g.address_id = source_addresses.address_id;\n"
} | psql -d geocoder
(перерви рядка виключно для читання)
Таким чином, це генерує "геокодування адреси із цим значенням ідентифікатора та використовує оператор оновлення" найкраща відповідність "та передає його psql, щоб це зробити. Він намагається лише геокодувати адресу без рейтингу - тобто ті, які ще не геокодовані. Тож він перезавантажений, і кожен робиться самостійно.
Я здогадуюсь, що ви хочете зробити Geocode, але нічого не заплатите за це? Є купа послуг, за допомогою яких можна геокодувати 20 мільйонів записів, але це обійдеться вам. Esri, Pitney Bowes та інші пропонують ці послуги за допомогою передплати або за ціну за x геокоди. 20 мільйонів не є дрібницею, але я припускаю, що для цього є ділова справа.
Розташування ваших даних є дуже важливим, оскільки якість веб-сервісів змінюється (точність, масштабність тощо ...) Я геокодую свою адресу з google api, facebook api та ex-simplegeo за допомогою моєї бази даних геоданих.
http://blog.programmableweb.com/2012/06/21/7-free-geocoding-apis-google-bing-yahoo-and-mapquest/
Це повідомлення, ймовірно, занадто пізно, щоб допомогти оригінальному афіші. Однак для тих, хто шукає геореференцію великої кількості даних безкоштовно, ви можете перевірити моє програмне забезпечення під назвою "Легкий геореференц", яке створено незалежно, просте у використанні та все ж потужне (див. Скріншот у нижній частині публікації).
Програма проста і проста у використанні, і запускається безпосередньо з файлу EXE, не вимагає встановлення. Ви можете вибрати геокодування між джерелом даних GNS або GeoNames, і ви можете робити те, що не може робити жоден інший геокодер, геокодування провінцій на основі бази даних адміністративних одиниць GADM, а також географічні історичні кордони країн із набору даних CShapes. Єдине застереження - це те, що воно не геокодує дані адреси. Всі вихідні дані виходять у формі файлів, готових до негайної візуалізації / аналізу в ГІС.
Що стосується ефективності та обробки великих даних, то програма була перевірена на геокодування 100 000 записів лише за 3 години. Для більшої кількості наборів даних очікуване збільшення часу обробки повинно криво зменшитись, оскільки значна частина часу обробки йде лише на початкову фазу, коли завантажуються набори даних по країні, але згодом збільшується. Крім того, при геокодування великих наборів даних не потрібно турбуватися про проблеми із підключенням до Інтернету чи проблеми з підключенням до мережі, оскільки програмне забезпечення, референтні набори даних та обробка базуються на локальному комп'ютері. Коефіцієнт відповідності може доходити до 80-90 відсотків, оскільки він заснований на нечіткому зіставленні обліку для написання відмінностей у написанні.
Більш детальна інформація, включаючи вступний документ та посібник для початківців, включена в пакет завантаження. Пробувати це не потрібно, програма - це просто простий файл, який ви можете розмістити та запустити на робочому столі без будь-яких зобов’язань чи захаращення комп'ютера.
Програмне забезпечення можна завантажити з: http://geocodeanything.wordpress.com/
Сподіваюся, що це допомагає.
Оскільки ви будете геокодувати американські адреси, я вважаю, що інструмент « Адреса вулиці до координат » з Інструментарію даних про наукові дані повинен добре працювати для вас.
This API takes either a single string representing a postal address, or a JSON-encoded array of addresses, and returns a JSON object with a key for every address. The value for each key is either null if no information was found for the address, or an object containing location information, including country, region, city and latitude/longitude coordinates.
Можливо, ви хочете завантажити віртуальну машину і запустити її з власного обладнання. Таким чином, вам не доведеться турбуватися про обмеження API, а ви також керуєте ним. О, і я сказав, що це безкоштовно? ;-)
Я не бачив жодного посилання на потрібний вам рівень точності, але я припускаю, що ви хочете, щоб довгий лат на даху або близький до цього. Якість вхідної адреси також може бути фактором. Добре очищений список адрес буде кодувати краще та швидше, ніж список неповних чи поганих адрес. Крім того, чи допустима 90% частота звернень чи вам потрібно кодувати всі 20 мільйонів адрес? У мене немає вільного рішення, але є відносно недороге, яке я знаю і використовую. ZP4 від компанії Semaphore Corp, http://www.semaphorecorp.com/пропонує адресний скрубер / геокодер та додає додатки, які оброблять адреси та повертають очищену адресу, прапор, який вказує, чи адреса доставляється USPS, і довгий лат для ZIP + 4. Точність ZIP + 4, як правило, близька до точності на даху в районах забудови (правильний бік вулиці та правильний блок), а не в сільській місцевості. Вартість ліцензії на 30 днів становить 120 доларів. Після закінчення цього часу скрубер для адреси все ще буде функціонувати, але перевірка точки доставки (DPV) та геодача не працюватимуть. З відносно швидким комп'ютером, побудованим протягом останніх двох років, і всі дані hte, які зберігаються та отримують доступ до них локально, 20 мільйонів записів повинні бути зроблені приблизно за 10 днів. Я геокодую адреси протягом останніх 15 років, і більшу частину часу використовую ZB4. Перш ніж запропонувати довгостроковий або DPV,
Я зараз геокодую 18 мільйонів адрес, тому хочу поділитися налаштуваннями.
В основному я використовував аннульову книгу для встановлення екземпляра Amazon EC2 як сервер Geocoder PostGIS Tiger, а потім використовував сценарій для створення геокод-адрес, перенесення їх на блок перепису.
Вартість Amazon EC2: мінімальна вимога 180G SSD коштує близько 18 доларів на місяць. Загалом мій екземпляр t2.large коштував близько 90 доларів на місяць.
Якщо у вас є Linux-коробка з SSD> 180G, ви також можете використовувати її в основному безкоштовно.
Моя середня продуктивність становить приблизно 170 ~ 300 мс / адреса хорошої якості, 400 ~ 600 мс / адреса поганої якості. Я маю на увазі погану якість, я маю на увазі, що в багатьох з них відсутні місто або неправильний місто, поштовий індекс або навіть неправильна адреса. Цей тип адреси займає набагато більше часу для геокодування, тому ваша ефективність залежить від якості введеного даних. Використовуваний нами екземпляр Amazon EC2 може геокодувати близько 4 мільйонів дійсно поганих форматованих адрес за один місяць.
Детальніше дивіться у моєму дописі про налаштування системи та сценарії
Наразі AWS має ряд серверів геокодування. Отримайте власний сервер і скиньте свої дані туди. https://aws.amazon.com/marketplace/search/results/ref=dtl_navgno_search_box?page=1&searchTerms=geocode
Якщо ваш робочий процес знаходиться в Python, геопія - це чудове рішення. Ви можете записати свою основну логіку геокодування абстрактно, а потім вибрати один з багатьох постачальників (ArcGIS, Baidu, Bing, DataBC, GeocodeFarm, GoecoderDotUS, GeoNames, Google, IGN France, LiveAddress, NaviData, Nominatim (OSM), OpenCage, OpenMapQuest, Yahoo! BOSS Place Finder, What3Words, Yandex ... феу). Ви навіть можете використати їх і в кінцевому підсумку вибрати точку, яка має найвищу впевненість у правильності за допомогою перевірки кількома службами геокодування. Багато з цих служб потребують реєстрації (але не всі). Вони можуть бути не однаково придатні для використання в США, але користь від виконання акуратної функції Python полягає в тому, що ви повинні мати можливість контролювати це.
Ось короткий приклад:
from geopy.geocoders import Nominatim
geolocator = Nominatim(country_bias='New Zealand', timeout=4)
geocoded = geolocator.geocode('Raglan, Waikato', exactly_one=True)
if geocoded is not None:
# success
lat = geocoded.latitude
lon = geocoded.longitude
https://geopy.readthedocs.org/en/1.10.0/
Дійсно, єдино важка частина - це те, щоб ваші адреси не були погано сформовані. Але, мабуть, знадобиться чимала кількість часу, щоб геокодувати 20 мільйонів локацій, однак ... і таке навантаження, ймовірно, порушить чиїсь умови обслуговування. Сподіваюся, що це комусь допомагає.
якщо ваш запит на геокодування не перевищує 2500 в день, ви можете використовувати API геокодування Google . ви повинні поглянути на api, він може повернутися до результатів у вигляді json або xml.
Ліміт використання:
Використання API геокодування Google підлягає обмеженню в кількості 2500 запитів на геолокацію в день. (Користувач API Карт Google для бізнесу може виконувати до 100 000 запитів на день.)
Приклад:
http://maps.google.com/maps/geo?key=yourkeyhere&output=json&q=520+3rd+Street+San+Francisco+CA
Приклад результату:
{
"name": "520 3rd Street San Francisco CA",
"Status": {
"code": 200,
"request": "geocode"
},
"Placemark": [ {
"id": "p1",
"address": "520 3rd St, San Francisco, Kaliforniya 94107, Amerika Birleşik Devletleri",
"AddressDetails": {
"Accuracy" : 8,
"Country" : {
"AdministrativeArea" : {
"AdministrativeAreaName" : "CA",
"SubAdministrativeArea" : {
"Locality" : {
"LocalityName" : "San Francisco",
"PostalCode" : {
"PostalCodeNumber" : "94107"
},
"Thoroughfare" : {
"ThoroughfareName" : "520 3rd St"
}
},
"SubAdministrativeAreaName" : "San Francisco"
}
},
"CountryName" : "USA",
"CountryNameCode" : "US"
}
},
"ExtendedData": {
"LatLonBox": {
"north": 37.7826364,
"south": 37.7799384,
"east": -122.3942267,
"west": -122.3969247
}
},
"Point": {
"coordinates": [ -122.3955757, 37.7812874, 0 ]
}
} ]
}
і ви можете перевірити приклад посилання для геокодування з google:
3. Починаючи з геокодування Google
Я сподіваюся, що це допоможе вам