反向地理编码就是将地理坐标转换为地名
例:-77.050, 38.889 转为 Lincoln Memorial Circle NW。这些位置名称的具体情况可能不同,从个别地址到包含给定坐标的州和国家。
1.基本的反向地理编码请求
URL参数 | 描述 |
---|---|
endpoint | mapbox.places 或 mapbox.places-permanent |
longitude,latitude | 一 longitude,latitude 对指定要查询的位置。 |
access_token | Mapbox 访问令牌 。 |
#检索特定位置附近的位置
String url =“https://api.mapbox.com/geocoding/v5/mapbox.places/-73.989,40.733.json?access_token=您的访问令牌“
#过滤结果仅包含兴趣点
String url =“https://api.mapbox.com/geocoding/v5/mapbox.places/-73.989,40.733.json?types=poi&access_token=您的访问令牌“
public void testReGeo(double lng ,double lat) {
String language;
if (Locale.getDefault().getLanguage().equals("zh")) {
language = "zh-CN";
} else {
language = "en";
}
//longitude,latitude
String url="https://api.mapbox.com/geocoding/v5/mapbox.places/"
+lng+","+lat+".json?
language=" + language+"&access_token="+getString(R.string.access_token);
OkHttpClient client=new OkHttpClient();
Request request=new Request.Builder().url(url).get().build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.d("testMapQuest","==>返回结果:onFailure "+e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String json=response.body().string();
Log.d("testMapQuest","==>返回结果:onResponse "+json);
}
});
}
2.响应对象
对逆地理编码的回应 API请求是包含以下属性的对象:
属性 | 描述 |
---|---|
type | "FeatureCollection" ,GeoJSON规范中的GeoJSON类型 。 |
query | 转发地理编码: 原始查询中的空格和标点符号分隔的字符串数组。 反向地理编码: 包含要查询的坐标的数组。 |
features | 一系列要素对象。 转发地理编码: 返回的要素按顺序排列 relevance 。 反向地理编码: 返回的要素按索引层次排序,从大多数特定要素到与查询坐标重叠的最不具体要素。 |
attribution | 一个字符串,用于将Mapbox Geocoding API的结果归因于Mapbox。 |
3.您可以使用以下可选参数进一步细化反向地理编码查询的结果:
查询参数 | 描述 |
---|---|
country (可选的) | 将结果限制在一个或多个国家/地区 允许的值是以 逗号分隔的ISO 3166 alpha 2国家/地区代码。 |
language (可选的) | 指定用户的语言。此参数控制响应中提供的文本的语言。 选项是 IETF语言标签, 包括强制性 ISO 639-1语言代码, 以及可选的国家或脚本的一个或多个IETF子标签。 对于需要以多种语言显示标签的应用程序,还可以使用逗号分隔多个值。 有关支持哪些特定语言的详细信息,请参阅 语言覆盖部分 。 |
limit (可选的) | 指定要返回的最大结果数。默认值为 1 ,支持的最大值为 10 。 反向地理编码中的默认行为是在管理层次结构的多个级别中的每个级别上最多返回一个要素(例如,一个地址,一个区域,一个国家/地区)。增加限制允许返回相同类型的多个要素,但仅适用于一种类型(例如,多个 address 结果)。因此,设置limit 为高于默认值需要指定一个 types 参数。 |
reverseMode (可选的) | 如果使用limit 其他 结果请求多个结果,则决定如何在反向地理编码查询中对结果进行排序 1 。选项是 distance (默认),这使得最接近的特征始终首先返回,并且 score 允许高突出特征比更近,更低突出的特征排序更高。 |
routing | 指定是否请求有关与功能(true )对应的推荐导航目标的其他元数据 ( false 默认)。仅适用于 address 功能。 例如,如果 routing=true 响应可以包括关于特征前沿道路上的点的数据。响应特征可以包括包含一个或多个可路由点的阵列。无法始终确定可路由点。如果未返回单独的可路由点,则应用的应用程序应回退到使用要素的常规几何进行路由。 |
types (可选的) | 过滤结果以仅包括可用要素类型的子集(一个或多个)。选项包括 country ,region , postcode , district , place , locality ,neighborhood , address ,和 poi 。多个选项可以用逗号分隔。请注意,这poi.landmark 是一种不推荐使用的类型,虽然仍然支持,但返回的数据与使用该poi 类型返回的数据相同 。 |
4.语言覆盖
翻译可用性因语言和地区而异。提供以下语言支持:
全球覆盖:这些语言几乎总是存在的country
,region
和突出place
的特点。
语言 | ||
---|---|---|
de 德语 | en 英语 | fr 法国 |
it 意大利 | nl 荷兰人 |
当地报道:这些语言可能缺乏全球覆盖,但几乎总是存在的country
,region
和突出的place
特点,他们被广泛使用。
语言 | ||
---|---|---|
ca 加泰罗尼亚 | cs 捷克 | fi 芬兰 |
he 希伯来语 | hu 匈牙利 | is 冰岛的 |
fi 芬兰 | ka 格鲁吉亚 | ja 日本 |
ko 朝鲜的 | lv 拉脱维亚 | nb 挪威语Bokmål |
pl 抛光 | pt 葡萄牙语 | sk 斯洛伐克 |
sl 斯洛文尼亚 | sr 塞尔维亚 | th 泰国 |
tl 他加禄语 | zh-Hans 简体中文 | zh-Hant 繁体中文 |
有限的覆盖范围:这些语言有时会出现,但覆盖范围往往不一致或受地域限制。
语言 | ||
---|---|---|
ar 阿拉伯 | bg (保加利亚语) | bs (波斯语) |
da (丹麦) | es 西班牙语 | id (印度尼西亚) |
kk 哈萨克人 | mn (蒙) | sq 阿尔巴尼亚人 |
ro (罗马尼亚语) | sv (瑞典) | tr 土耳其 |
zh (中文) | - | - |
5.地理编码速率限制
费率限制因计划级别而异,并按帐户强制执行。每个计划包括:
计划级别 | 速率限制 | 批量地理编码 | 存储结果 |
---|---|---|---|
现收现付 | 每分钟600个请求 | ❌ | ❌ |
广告 | 每分钟600个请求 | ❌ | ❌ |
企业 | 每分钟2,400多个请求 | ✅ | ✅ |