当我在java中拥有纬度和经度时,如何获取位置的地址?

时间:2012-10-09 09:45:29

标签: java

我从GPS设备获得一定的经度和经度。我必须知道这个地方的地址。我怎么能用java做。当我知道纬度和经度时,Google是否提供了谷歌提供的API来了解地址?

2 个答案:

答案 0 :(得分:2)

Google的GeocodingPlaces API完全符合您的要求。

答案 1 :(得分:2)

在以下示例中,包含两个主要概念。

  1. Web Service client(Reverse geocoding)
  2. JS​​ON
  3. Web服务客户端用于从另一个提供某些Web服务的服务器访问资源

    使用此服务,您可以使用纬度,经度

    进行地址使用

    Google正在提供免费的网络服务客户端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;
        }
    }