Существуют ли какие-либо хорошие веб-сервисы, которые предоставляют достоверную информацию для поиска по странам и штатам/провинциям?
Если да, то какие вы используете?
Существуют ли какие-либо хорошие веб-сервисы, которые предоставляют достоверную информацию для поиска по странам и штатам/провинциям?
Если да, то какие вы используете?
Если вам нужна только информация из США, Почтовая служба США предоставляет набор веб-сервисов, которые она называет WebTools именно для этого. https://www.usps.com/business/web-tools-apis/welcome.htm. Вам нужно будет зарегистрироваться, чтобы иметь возможность использовать их, но как только вы зарегистрируетесь, они действительно просты в использовании. Вы просто отправляете запрос XML через HTTP, а сервер отправляет ответ XML обратно, и вам просто нужно его распаковать.
Запрос образца:
http://SERVERNAME/ShippingAPITest.dll?API=Verify&XML=<AddressValidateRequest%20USERID="xxxxxxx"><Address ID="0"><Address1></Address1><Address2>6406 Ivy Lane</Address2><City>Greenbelt</City><State>MD</State><Zip5></Zip5><Zip4></Zip4></Address></AddressValidateRequest>
Пример ответа:
<?xml version="1.0"?>
<AddressValidateResponse>
<Address ID="0">
<Address2>6406 IVY LN</Address2>
<City>GREENBELT</City>
<State>MD</State>
<Zip5>20770</Zip5>
<Zip4>1441</Zip4>
</Address>
</AddressValidateResponse>
Вот ссылка на техническую документацию: https://www.usps.com/business/web-tools-apis/documentation-updates.htm
Это лучшее, что я нашел. Они позволяют вам загружать и размещать веб-сервис самостоятельно, что тоже приятно.
Служба, которая хорошо работает с .Net (поскольку она использует WSDL), — это http://www.webservicex.net. У них есть служба для почтовых индексов США, доступная по адресу http://www.webservicex.net/uszip.asmx а>. Вы можете просто добавить его как службу, а Visual Studio позаботится обо всем остальном. Ответ приходит в виде ответа XML, поэтому вам придется его проанализировать, но вы можете использовать что-то простое, например USZIP.GetInfoByZIP(ZIP).SelectSingleNode("//STATE").InnerText
.
Затем для своего приложения я создал кэш данных в памяти, используя XML, следуя следующим указаниям: http://www.15seconds.com/issue/010410.htm. Я использовал XML вместо HashTable
или Dictionary(TKey, TValue)
, потому что хотел иметь возможность сериализовать его в строку, чтобы сохранить «базу данных» в качестве пользовательской настройки.
Хорошим источником географических данных, включая поисковые и картографические данные для США, является TIGER Бюро переписи населения США. Набор данных. Они больше не отслеживают активно данные почтовых индексов, но у них есть винтажный файл 1999 года все еще доступен.
Для стран общедоступен список кодов стран ISO.
Я не знаю источников информации за пределами США.