使用Bing和Java进行地理定位

时间:2019-03-21 10:52:40

标签: java geolocation bing-api

我可以使用Bing Maps API和Java进行地理位置定位吗?我有API密钥,但在网上找不到任何内容。

我找到了一个可以使用Excel宏的方法,该方法可以运行,但还不够,我需要一个Java控制台脚本来完成它。

干杯,达米亚诺。

1 个答案:

答案 0 :(得分:1)

在Java中似乎没有任何官方方法可以使用Maps API。

但是,here上有一个用于API的非官方Java包装器。尚未对此进行过一段时间的更新,因此无法保证它仍然可以正常工作,但这应该是实现地理编码请求的良好起点。

还有一种方法可以在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();
    }
}