3

GPS デバイスから特定の緯度と経度を取得しています。私はその場所の住所を知らなければなりません。Javaでできること。緯度と経度がわかっているときに住所を知るためにGoogleがJavaで提供するAPIはありますか?

4

2 に答える 2

3

次の例には、2 つの主要な概念が含まれています。

  1. Web サービス クライアント (リバース ジオコーディング)
  2. JSON

Web サービス クライアントは、Web サービスを提供する別のサーバーからリソースにアクセスするために使用されます。

このサービスを使用すると、緯度、経度の住所使用を取得できます

Google は無料の Web サービス クライアント URI を提供しています。

"https://maps.googleapis.com/maps/api/geocode/json?latlng=<LATITUDE>,<LONGITUDE> &key=<ENTER YOUR PLACE API KEY HEAR>

そのサービスを利用する Google place API からあらゆる種類のアドレスを JSON 形式で取得できます

JSONデータから必要なオブジェクトと値を見つけた後

そのJSONデータからformatted_addressを渡します

緯度、経度を使用して場所の住所を取得する次のコードがあります

package clientpkg;

import java.net.URI;
import javax.ws.rs.client.Client;  
import javax.ws.rs.client.ClientBuilder;  
import javax.ws.rs.client.WebTarget;  
import javax.ws.rs.core.MediaType;  
import javax.ws.rs.core.UriBuilder;  
import org.glassfish.jersey.client.ClientConfig;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

public class MapAdd
{
    public static void main(String...aa)
    {
        try
        {
            System.out.println("Finding Address...\n");
            ClientConfig config = new ClientConfig();
            Client client = ClientBuilder.newClient(config);
            WebTarget target = client.target(getBaseURI());

            String jsonaddresss =  target.request().accept(MediaType.APPLICATION_JSON).get(String.class);

            String address = adres(jsonaddresss);


            System.out.println("Perfect Address is : >>"+address);

        }
        catch(Exception e)
        {
            System.out.println("Error"+e);
        }
    }

    private static URI getBaseURI()
    {
        return UriBuilder.fromUri("https://maps.googleapis.com/maps/api/geocode/json?latlng=32.263200,50.778187&key=<ENTER YOUR PLACE API KEY HEAR >").build();
    }
    private static String adres(String jsonaddresss)
    {
        try
        {
            JSONParser parser = new JSONParser();

            Object obj = parser.parse(jsonaddresss);
            JSONObject jsonObject = (JSONObject) obj;

            JSONArray msg = (JSONArray) jsonObject.get("results");

            //System.out.println("Message"+msg.get(1)); //Get Second Line Of Result

            JSONObject jobj = (JSONObject) parser.parse(msg.get(1).toString()); // Parsse it 

            String perfect_address = jobj.get("formatted_address").toString();

            jsonaddresss = perfect_address;
        }
        catch(Exception e)
        {
            jsonaddresss = "Error In Address"+e;
        }
        return jsonaddresss;
    }
}
于 2017-05-21T11:55:52.240 に答える
2

Google のGeocodingPlaces APIは、まさにあなたが望むことを行います。

于 2012-10-09T09:47:47.310 に答える