如何用Java開發地理位置應用程序?

jopen 9年前發布 | 14K 次閱讀 Java Java開發

開發帶有地理位置的應用(Geocoding)是這樣的過程,利用其它地理位置信息找到相應的坐標。

 如何用Java開發地理位置應用程序?

Java API for Google geocoder v3可以很好地支持地理位置應用開發。使用這個API可以做一些很酷的事情。例如,下面是來自http://gliesians.com一張圖片,是路透社世界新聞RSS的地理位置應用,它會自動在谷歌地圖(GMAP)上做出新聞標識。

 如何用Java開發地理位置應用程序?

通過三個簡單的步驟使用Google Geocoder-Java API開發Geocoding應用:

  • 步驟一:添加GeoCoder API到Maven的dependency標簽中。
  • 步驟二:通過使用API寫一個方法來開發GeoCoding應用。
  • 步驟三:將一個位置傳遞給這個方法,然后查看位置信息。

在Maven中添加GeoCoder API依賴

將以下代碼添加到你Maven項目的pom.xml文件:

<dependency>
  <groupId>com.google.code.geocoder-java</groupId>
  <artifactId>geocoder-java</artifactId>
  <version>0.16</version>
</dependency>

使用Google Geocoder v3 API開發地理位置應用程序

下面的示例代碼是我遵循MIT許可Joe Pasqua代碼進行的修改。這段代碼將會接收的一個地理位置(比如意大利),然后以數組形式返回經緯度。

public static Float[] performGeoCoding(String location) {
  if (location == null) 
     return null;

  Geocoder geocoder = new Geocoder();
  GeocoderRequest geocoderRequest
     = new GeocoderRequestBuilder()
       .setAddress(location) // location
       .setLanguage("en") // language
       .getGeocoderRequest();
  GeocodeResponse geocoderResponse;

  try {
    geocoderResponse = geocoder.geocode(geocoderRequest);
    if (geocoderResponse.getStatus() == GeocoderStatus.OK
      & !geocoderResponse.getResults().isEmpty()) {
      GeocoderResult geocoderResult = 
        geocoderResponse.getResults().iterator().next();
      LatLng latitudeLongitude =
        geocoderResult.getGeometry().getLocation();
      Float[] coords = new Float[2];
      coords[0] = latitudeLongitude.getLat().floatValue();
      coords[1] = latitudeLongitude.getLng().floatValue();
      return coords;
    }
  } catch (IOException ex) {
    ex.printStackTrace();
  }
  return null;
}

 

給方法傳入地點,然后獲得你的地理位置信息

下面的代碼運行這個方法,啟用地理位置應用然后打印結果:

public static void main(String[] args) {
  String location = "Troia, Foggia, Italy";
  Float[] coords = performGeoCoding(location);
  System.out.println(location + ": " 
      + coords[0] + ", " + coords[1]);
}
$ Troia, Foggia, Italy: 41.35978, 15.308114

注意:導入

這里是對于不用IDE的程序員來說需要的相關導入:

import com.google.code.geocoder.Geocoder;
import com.google.code.geocoder.GeocoderRequestBuilder;
import com.google.code.geocoder.model.GeocodeResponse;
import com.google.code.geocoder.model.GeocoderRequest;
import com.google.code.geocoder.model.GeocoderResult;
import com.google.code.geocoder.model.GeocoderStatus;
import com.google.code.geocoder.model.LatLng;
import java.io.IOException;

例如,在NetBeans中使用“Ctrl+Alt+I”完成自動導入。

一如既往,我希望很多人已經發現這篇博文有趣并且有用

——Robert

原文鏈接: robertjliguori 翻譯: ImportNew.com - Calarence
譯文鏈接: http://www.importnew.com/14132.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!