我从 GPS 设备获得了一定的纬度和经度。我必须知道那个地方的地址。我如何在java中做到这一点。当我知道纬度和经度时,谷歌在 java 中是否提供任何 API 来知道地址?
问问题
11435 次
2 回答
3
在以下示例中,包含两个主要概念。
- Web 服务客户端(反向地理编码)
- JSON
Web 服务客户端用于从提供一些 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 回答