2016-05-20 809 views

回答

1

望着Mapbox Android SDK指南,請執行以下操作:

不執行主UI線程上的任何的示例代碼。

例1:

請注意:position參數是可選的反而會使得到結果更快。

// position used for proximity 
Position position = Position.fromCoordinates(-73.98572, 40.74843); 

MapboxGeocoding client = new MapboxGeocoding.Builder() 
      .setAccessToken("<your access token here>") 
      .setLocation("Empire State Building") 
      .setProximity(position) 
      .build(); 

Response<GeocodingResponse> response = client.execute(); 

例2:

MapboxGeocoding client = new MapboxGeocoding.Builder() 
      .setAccessToken("<your access token here>") 
      .setLocation("Empire State Building") 
      .build(); 

Response<GeocodingResponse> response = client.execute(); 
+0

這是我想的正好相反。我擁有這個地址並且想要它的座標。但謝謝你的回覆。 –

+1

提供的那些座標太窄而無法搜索地址 –

+0

Clive是正確的,座標用於偏差結果。這是一個可選參數,但會使結果更快。有關如何在您的Android應用程序中首次使用我們的地理編碼器的完整示例,請在您的'build.gradle'中包含Mapbox Android Services SDK,並遵循此[示例](https://www.mapbox.com/android-sdk/ examples/geocoding /) – cammace

1

您必須使用Mapbox.GeocodingBuilder,得到了Response,並從Response訪問所需的字段。

下面是一個我在網上找到並編輯的簡單例子。

private void simpleSample() { 
    MapboxGeocoder client = new MapboxGeocoder.Builder() 
      .setAccessToken(MAPBOX_ACCESS_TOKEN) 
      .setLocation("The White House") 
      .build(); 

    client.enqueue(new Callback<GeocoderResponse>() { 
     @Override 
     public void onResponse(Response<GeocoderResponse> response, Retrofit retrofit) { 
      // Features, basically, is a list of search results 
      // get the first one 
      // get latitude and longitude 
      String latitude = response.body().getFeatures().get(0).getLatitude(); 
      String longitude = response.body().getFeatures().get(0).getLongitude(); 
     } 

     @Override 
     public void onFailure(Throwable t) { 
      // log t.getMessage() 
     } 
    }); 
} 

您可以在自己的API 101 webpage閱讀有關mapbox地址解析API的一些基礎知識。

你可以看到在mapbox Geocoding API documentation page

一些官方的例子你可以試着搜索詞,看到在地圖上或原始JSON —這對於看到的結果數據的形狀以及如何遍歷它—是有用的結果在API forward geocoding playground page(注意:您必須登錄到一個地圖盒帳戶來做到這一點,但如果你沒有一個是免費的)。

(全面披露:我工作SmartyStreets,地址驗證和自動完成的公司,competing products