Когда мы хотим преобразовать адрес в широту и долготу, нам обычно приходится выбирать лучшего провайдера, которого мы можем, и иметь дело с различными уровнями качества. Например, иногда один провайдер лучше другого в определенной части мира. Первая статья в этой серии показывает, как получить доступ к нескольким поставщикам геокодирования с помощью одной реализации с помощью Superface OneSDK. Давайте теперь посмотрим, как можно использовать разных провайдеров в зависимости от страны, чтобы получить наилучшее качество.

Допустим, мы проводим исследование и определяем, что Карты Google работают в США лучше, чем другие провайдеры (это может быть неправдой). Допустим, мы решили использовать Google Maps только для адресов в США, а Here.com — для всех остальных.

Мы можем написать немного JavaScript, чтобы зафиксировать это решение.

const providerName = addressCountry === 'US' ? 'google-apis-maps' : 'here';

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

const provider = await sdk.getProvider(providerName);
const result = await profile.getUseCase('Geocode').perform(
  {
    addressCountry: 'United States',
    addressLocality: 'Manhattan',
    postalCode: 'NY 10036',
    streetAddress: 'Times Square',
  },
  { provider }
);

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

Посетите нашу страницу геокодирования, чтобы узнать больше об использовании Superface для геокодирования.

Читать далее





Первоначально написано Стивеном Мизеллом и опубликовано на https://superface.ai 14 апреля 2022 г.