如何获取给定城市名称或地址(java代码)的纬度和经度?



我想用谷歌地图从java项目(eclipse(中的城市名称中获取纬度和经度。 我尝试使用此代码,但发现多个错误。我想是因为它是针对Android的。 我想知道你能不能帮我??

public boolean getLatitudeAndLongitudeFromGoogleMapForAddress(String searchedAddress){
Geocoder coder = new Geocoder(IPlant.iPlantActivity);
List<Address> address;
try 
{
address = coder.getFromLocationName(searchedAddress,5);
if (address == null) {
Log.d(TAG, "############Address not correct #########");
}
Address location = address.get(0);
Log.d(TAG, "Address Latitude : "+ location.getLatitude();+ "Address Longitude : "+ location.getLongitude());
return true;
}
catch(Exception e)
{
Log.d(TAG, "MY_ERROR : ############Address Not Found");
return false;
}
}

您发布的代码确实适用于Android,因为它使用的是Android的Geocoder类。

如果尝试在 Web 应用程序中对服务器端地址进行地理编码,则应改用 Web 服务的客户端库。可在此处找到 Java 客户端,它为地理编码 API 提供了以下代码示例:

GeoApiContext context = new GeoApiContext.Builder()
.apiKey("AIza...")
.build();
GeocodingResult[] results =  GeocodingApi.geocode(context,
"1600 Amphitheatre Parkway Mountain View, CA 94043").await();
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(results[0].addressComponents));

请注意,您需要一个有效的 API 密钥;我建议您阅读Google的入门指南。

希望这对你有帮助。

最新更新