mapbox - 带有西里尔街道名称的 Mapbox 地理编码
问题描述
我正在尝试使用 MapBox 地理编码进行地理编码。我在搜索西里尔文(塞尔维亚语)街道名称时遇到问题。当我搜索城市名称(显示为拉丁文)时,我可以找到它们。此外,MapBox 没有选项以塞尔维亚语(仅英语、法国、德国、西班牙语)显示地图。但是,我尝试将语言设置为塞尔维亚语,但没有帮助。
这是我的代码,但我认为代码没有问题,只是 MapBox 有问题,不提供对塞尔维亚的支持。
private void getCoordinatesFromAddress(String address) {
progressDialog.setCancelable(false);
progressDialog.setMessage("Pronalazenje lokacije...");
progressDialog.show();
MapboxGeocoding mapboxGeocoding = MapboxGeocoding.builder()
.accessToken(getString(R.string.mapbox_access_token))
.query(address)
.mode(GeocodingCriteria.MODE_PLACES)
.geocodingTypes(GeocodingCriteria.TYPE_ADDRESS, GeocodingCriteria.TYPE_PLACE)
.proximity(Point.fromLngLat(21.895759,43.320902))
.country("RS")
.languages("sr")
.build();
mapboxGeocoding.enqueueCall(new Callback<GeocodingResponse>() {
@Override
public void onResponse(Call<GeocodingResponse> call, Response<GeocodingResponse> response) {
List<CarmenFeature> results = response.body().features();
if (results.size() > 0) {
progressDialog.dismiss();
Point firstResultPoint = results.get(0).center();
publicFunctions.displayToast("Lokacija " + address + " pronadjena");
move(firstResultPoint.latitude(),firstResultPoint.longitude());
} else {
publicFunctions.displayToast("Lokacija " + address + " nije pronadjena");
progressDialog.dismiss();
}
}
@Override
public void onFailure(Call<GeocodingResponse> call, Throwable throwable) {
throwable.printStackTrace();
progressDialog.dismiss();
}
});
}
解决方案
在https://docs.mapbox.com/api/search/#local-coverage中提到了塞尔维亚语
您可以使用 Mapbox Geocoding Playground 进行探索。这是一个 URL,它将加载 Playground 的设置以匹配您上面的地理编码查询代码。确保在 Playground 中键入塞尔维亚语查询,因为正在应用塞尔维亚语过滤器。
推荐阅读
- postgresql - 具有 unnest 的 PostgreSQL 查询不返回空值的结果行
- bash - Bash - 目录名:缺少操作数
- c - SIGQUIT 和 STDIN(读取函数的意外转储)
- html - 可以在 webview 中使用资产目录中的命名颜色吗?
- oracle - 如何选择列表但从 Oracle 数据库返回行
- javascript - 在jquery中设置宽度
- azure - Azure 文件存储/文件共享 - 端口 445 - 为什么
- python - 美化/缩短连接的for循环
- python - 我的计时器似乎很不对劲-我该如何解决/我做错了什么?
- javascript - Javascript 检查给定键的值是否存在于字典数组中