MapBox Android 逆向地理编码(Reverse geocoding)

反向地理编码就是将地理坐标转换为地名

例:-77.050, 38.889 转为 Lincoln Memorial Circle NW。这些位置名称的具体情况可能不同,从个别地址到包含给定坐标的州和国家。

1.基本的反向地理编码请求

URL参数描述
endpointmapbox.places 或 mapbox.places-permanent 
longitude,latitude一 longitude,latitude 对指定要查询的位置。
access_tokenMapbox 访问令牌 。

#检索特定位置附近的位置
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.语言覆盖

翻译可用性因语言和地区而异。提供以下语言支持:

全球覆盖:这些语言几乎总是存在的countryregion和突出place的特点。

语言  
de 德语en 英语fr 法国
it 意大利nl 荷兰人 

当地报道:这些语言可能缺乏全球覆盖,但几乎总是存在的countryregion和突出的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多个请求
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值