Временное решение API Azure Maps для неподдерживаемых регионов

Я использую API Карт Azure для геокодирования. Иногда это работает, а иногда нет. Во время исследования я нашел документ - https://docs.microsoft.com/en-us/azure/azure-maps/about-azure-maps. В нем говорится, что API в настоящее время не поддерживается для следующих стран:

  • Аргентина
  • Китай
  • Индия
  • Марокко
  • Пакистан
  • Южная Корея

Я ищу обходной путь. Есть ли способ использовать API из Индии?

2 ответа

Вот обходной путь, который я понял.

Создайте приложение-функцию в Azure и выполните Http-вызов API карт Azure. Убедитесь, что приложение размещено в регионе, где разрешен API карт Azure (например, в Центральной США).

using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using System.Net.Http;

public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
    string lattlong = req.Query["lattlong"];

    HttpClient httpClient = new HttpClient();
    string location = httpClient.GetStringAsync("https://atlas.microsoft.com/search/address/reverse/json?api-version=1.0&subscription-key=<secret_key>&query=" + lattlong).Result;

    dynamic data = Newtonsoft.Json.Linq.JObject.Parse(location);

    return lattlong != null
        ? (ActionResult)new OkObjectResult(data.addresses[0].address.municipality + ", " + data.addresses[0].address.country)
        : new BadRequestObjectResult("Failed to get location.");
}

Приложение-функция должно принять значения lattidue и longitude и выполнить вызов Http.

https://<function_app>.azurewebsites.net/api/GetLocation?code=1/<function_secret_key>&lattlong=13.097045900000001,77.59058569999999

Ответ от API Карт Azure успешно возвращается приложением-функцией.

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

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