2016-05-20 169 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