Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 地理编码器用英语代替当地语言_Android_Google Maps_Google Geocoder - Fatal编程技术网

Android 地理编码器用英语代替当地语言

Android 地理编码器用英语代替当地语言,android,google-maps,google-geocoder,Android,Google Maps,Google Geocoder,我正在使用地理编码器从lan/lat坐标中获取地址。 问题是地址是用当地语言写的(通常是街道名称)。我怎样才能设置为只使用英语 我正在使用: Geocoder geocoder = new Geocoder(Context, Locale.getDefault()); 尝试: Geocoder geocoder = new Geocoder(Context, Locale.ENGLISH); Geocoder geocoder = new Geocoder(Context, Locale.US

我正在使用地理编码器从lan/lat坐标中获取地址。 问题是地址是用当地语言写的(通常是街道名称)。我怎样才能设置为只使用英语

我正在使用:

Geocoder geocoder = new Geocoder(Context, Locale.getDefault());
尝试:

Geocoder geocoder = new Geocoder(Context, Locale.ENGLISH);
Geocoder geocoder = new Geocoder(Context, Locale.US);

没有运气。

我认为这是不可能的。街道名称是街道名称。它们不会被翻译。你有名字。你的名字就是你的名字,不管别人说什么语言。当你用外语与人交谈时,你不会“翻译”你的名字

地理编码器只是将地理坐标映射到其他实体的数据库。一般来说,你找不到一条街道的多个名字。在一些情况下,名称会被翻译(例如,城市名称可以翻译成多种语言),但这些名称是例外,而不是规则。

API 19
我认为答案并不完全正确。
我刚刚遇到过这种情况,当我将GeoCoder区域设置为英语时,我得到了错误的街道名称。
它不翻译它们,但它删除了特定语言的部分,这是我关心的问题

例如,“Straße”变成了“St”

Google Maps HTTP Geocoder API在这方面有所不同,当我设置一种英语时,街道被正确返回,只是测试的国家被翻译了(奥地利而不是奥斯特雷希)

许多人使用HTTP API作为备用,以防地理编码器出现故障,这可能是一个问题,就像我的情况一样。
我的解决方案是对两个API始终使用国家/地区,然后结果匹配。
HTTP API有一个&language参数,它将Local.toString()理解为值

地理编码器可以像原始问题一样初始化

创建一个新的locate实例,如下所示:

    Locale aLocale = new Builder().setLanguage("en").setScript("Latn").setRegion("RS").build();
    Geocoder geocoder = new Geocoder(context,aLocale);

街道名称不需要翻译,只需显示英文即可。例如,你的中文名字叫大卫大卫. 谷歌地图可以用不同的语言看到。在以色列有Ben Gurion street,通过Geocoder,我的结果是בן-גוריון,这是英语中的Ben Gurion,但我希望它用英语而不是希伯来语显示。@DanM看一看。如果街道名称以这种方式标注,你将无能为力。并非所有数据都有翻译(如David所说)。唯一的方法是自己翻译。
Geocoder-Geocoder=new-Geocoder(MainApplication.getAppContext(),Locale.ENGLISH)正在为我工作。API 16