Геолокализация с помощью Bing и Java - PullRequest
0 голосов
/ 21 марта 2019

Можно ли использовать API Bing Maps с Java для геолокации? У меня есть ключ API, но я ничего не могу найти в сети.

Я нашел метод с макросом Excel, который работает, но его недостаточно, мне нужен консольный сценарий Java для этого.

Ура, Дамиано.

1 Ответ

1 голос
/ 02 апреля 2019

Официального способа использования API Карт в Java, похоже, не существует.

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

Существует также метод для реализации запросов обратного геокодирования в той же оболочке на client.reverseGeocode().

import net.virtualearth.dev.webservices.v1.common.GeocodeResult;
import net.virtualearth.dev.webservices.v1.geocode.GeocodeRequest;
import net.virtualearth.dev.webservices.v1.geocode.GeocodeResponse;

import com.google.code.bing.webservices.client.BingMapsWebServicesClientFactory;
import com.google.code.bing.webservices.client.geocode.BingMapsGeocodeServiceClient;
import com.google.code.bing.webservices.client.geocode.BingMapsGeocodeServiceClient.GeocodeRequestBuilder;

public class BingMapsGeocodeServiceSample {

    public static void main(String[] args) throws Exception {
        BingMapsWebServicesClientFactory factory = BingMapsWebServicesClientFactory.newInstance();
        BingMapsGeocodeServiceClient client = factory.createGeocodeServiceClient();
        GeocodeResponse response = client.geocode(createGeocodeRequest(client));
        printResponse(response);
    }

    private static void printResponse(GeocodeResponse response) {
        for (GeocodeResult result : response.getResults().getGeocodeResult()) {
            System.out.println(result.getDisplayName());
        }
    }

    private static GeocodeRequest createGeocodeRequest(BingMapsGeocodeServiceClient client) {
        GeocodeRequestBuilder builder = client.newGeocodeRequestBuilder();
        builder.withCredentials("xxxxxx", null);
        builder.withQuery("1 Microsoft Way, Redmond, WA");
//      builder.withOptionsFilter(Confidence.HIGH);
        return builder.getResult();
    }
}
...