Google places api 葡萄牙语googleplaceapi

Google places api 葡萄牙语googleplaceapi,google-places-api,google-geocoding-api,Google Places Api,Google Geocoding Api,我正在使用谷歌的PlaceAPI自动完成用户输入的城市名称(网页)。加载API时,将语言(pt BR)作为参数传递,文本框以葡萄牙语正确填充,但当执行方法getPlace()时,它将以英语返回结果(国家和行政区级别) 我不确定问题是否出在谷歌API上,它们的葡萄牙语翻译还是我遗漏了什么。我试图通过西班牙语(es)、英语(en)和意大利语(It)作为语言参数加载它,并按预期工作 以下是我加载的方式: <script src="https://maps.googleapis.com/maps/

我正在使用谷歌的PlaceAPI自动完成用户输入的城市名称(网页)。加载API时,将语言(pt BR)作为参数传递,文本框以葡萄牙语正确填充,但当执行方法getPlace()时,它将以英语返回结果(国家和行政区级别)

我不确定问题是否出在谷歌API上,它们的葡萄牙语翻译还是我遗漏了什么。我试图通过西班牙语(es)、英语(en)和意大利语(It)作为语言参数加载它,并按预期工作

以下是我加载的方式:

<script src="https://maps.googleapis.com/maps/api/js?key=[myapikey]&signed_in=true&libraries=places&callback=initAutocomplete&language=pt-BR" async defer></script>
我还使用反向地理编码API传递place_id,问题是相同的(C代码)

var-apikey=“[myserverapikey]”;
var requestUri=string.Format(“https://maps.googleapis.com/maps/api/geocode/json?place_id={0}&key={1},place_id,apikey);
var-idiomas=新字符串[]{“pt-BR”、“es”、“en-us”、“it”};
string responseContent=string.Empty;
foreach(idiomas中的var-idioma)
{
HttpWebRequest-request=WebRequest.Create(requestUri)作为HttpWebRequest;
request.Headers.Add(HttpRequestHeader.AcceptLanguage,idioma);
HttpWebResponse=request.GetResponse()作为HttpWebResponse;
StreamReader=新的StreamReader(response.GetResponseStream());
var jsontext=reader.ReadToEnd().Trim();
responseContent+=jsontext;
var json=JsonConvert.DeserializeObject(jsontext);
}
返回Json(responseContent,JsonRequestBehavior.AllowGet);
我已经查看了文档,支持pt BR:

巴西葡萄牙语的语言代码是“pt_BR”,而不是“pt BR”,因此请将链接更改为:

<script src="https://maps.googleapis.com/maps/api/js?key=[myapikey]&signed_in=true&libraries=places&callback=initAutocomplete&language=pt_BR" async defer></script> >

这将为您提供完整的地址,然后您必须解析字符串以获取城市、州、国家信息。

链接答案的副本表明,当翻译不可用时,这是occours,但这不是我的情况,因为pt BR中的文本框填写正确。这很奇怪,但可能取决于谷歌的数据结构。谢谢你的回答,但文档上说这是pt BR。不管怎样,我试过你的建议,但也没用。支持的语言:嗯。。我懂了。。不幸的是。。这是谷歌地图中的一个错误..:嘿,看看黑客的解决方案,它可能会再次为你工作,汉克斯!我已经试过了,但是GooglePlacesAPI没有一个一致的显示名返回模式。例如:它返回“圣保罗-SP,巴西”,使用破折号分隔城市名称(圣保罗)和行政区(SP),但如果我搜索纽约,它使用逗号(“纽约,新Iorque,Estados Unidos”)。如果搜索Nova Iorque,则返回“Nova Iorque,Estados Unidos”,不带行政区域。对纽约市的两次搜索都返回相同的place_id。在上述所有情况下,选择语言背后都有很好的理由,请参阅─ Places Autocomplete API是一个例外:返回的术语将匹配用户键入的内容。
    var apikey = "[myserverapikey]";
    var requestUri = string.Format("https://maps.googleapis.com/maps/api/geocode/json?place_id={0}&key={1}", place_id, apikey);

    var idiomas = new string[] {"pt-BR", "es", "en-us", "it"};

    string responseContent = string.Empty;
    foreach (var idioma in idiomas)
    {
        HttpWebRequest request = WebRequest.Create(requestUri) as HttpWebRequest;
        request.Headers.Add(HttpRequestHeader.AcceptLanguage, idioma);
        HttpWebResponse response = request.GetResponse() as HttpWebResponse;
        StreamReader reader = new StreamReader(response.GetResponseStream());

        var jsontext = reader.ReadToEnd().Trim();

        responseContent += jsontext;

        var json = JsonConvert.DeserializeObject<GoogleGeoCodeResponse>(jsontext);


    }

    return Json(responseContent, JsonRequestBehavior.AllowGet);
<script src="https://maps.googleapis.com/maps/api/js?key=[myapikey]&signed_in=true&libraries=places&callback=initAutocomplete&language=pt_BR" async defer></script> >
$("input:text").val()