Получить двухбуквенное сокращение штата / провинции

Поэтому я использую API GeoNames для получения информации о стране и штате / провинции, которую я использую для заполнения выбранных выпадающих списков в форме. Эта форма передает информацию в веб-службу SOAP, а сервер SOAP понимает данные страны и штата / провинции только в двухбуквенной форме. то есть. CA для Канады, США для США. API GeoNames предоставляет эту информацию для разных стран, но не для их детей (штатов / провинций).

Кто-нибудь знает, как получить двухбуквенное сокращение для штата / провинции / территории от GeoNames или есть другой API, который я могу попробовать?

3 ответа

Решение

Я не знаком с API GeoNames, но, похоже, вы получаете коды стран ISO-3166 alpha-2: http://www.iso.org/iso/country_codes.htm

Если это так, ISO 3166-2:2007 определяет штаты и провинции. На странице выше описано, как приобрести информацию в базе данных и других форматах.

Если не требуется получать эту информацию от веб-службы, я думаю, что проще прочитать выпадающий список из статического файла определенного типа и создать механизм для периодических обновлений. Этот тип данных не должен меняться так часто (ну, по крайней мере, в стабильных странах).

В соответствии с @user640118, сокращения штатов не часто меняются, если вообще когда-либо, в Северной Америке. Лучше всего иметь статический список кодов или сокращений.

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

Если у вас есть адрес, вы можете использовать эту функцию-обертку следующим образом в Javascript:

LiveAddress.verify("123 main st 12345", function(results) {
   console.log(results);
});

Пример вывода можно найти в документации по API.

Geonames предоставляет двухбуквенные сокращения для стран, но имеет их только для штатов в нескольких странах.

Почему они не предоставляют что-то стандартное (и полезное), так как это вне моего понимания.

Другие вопросы по тегам