2015-10-16 16 views
9

Tôi đang sử dụng API địa điểm của Google để Tự động điền tên thành phố được người dùng (trang web) nhập. API được tải qua ngôn ngữ (pt-BR) làm tham số và hộp văn bản được điền chính xác bằng tiếng Bồ Đào Nha, nhưng khi phương thức getPlace() được thực thi, nó trả về kết quả (country và administrative_area_level_1) bằng tiếng Anh.API Google Place bằng tiếng Bồ Đào Nha

Tôi không chắc liệu sự cố có phải là Google API hay không, bản dịch của họ sang tiếng Bồ Đào Nha hoặc nội dung nào đó mà tôi bỏ qua. Tôi đã cố gắng để tải Nó đi qua tiếng Tây Ban Nha (es), tiếng Anh (en) và tiếng ý (nó) như là tham số của ngôn ngữ và làm việc như mong đợi.

Dưới đây là cách tôi đang tải:

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

... và làm thế nào tôi nhận được kết quả dựa trên mã mẫu của Google:

// Get the place details from the autocomplete object. 
var place = autocomplete.getPlace(); 

Tôi cũng đang sử dụng mã hóa địa lý API ngược chuyển place_id và vấn đề là giống nhau (mã 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 = 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); 

Tôi đã kiểm tra tài liệu và các pt-BR được hỗ trợ: Google API Supported Languages

+0

Bản sao của http://stackoverflow.com/questions/27567757/inconsistent-language-in-google-place-details-api – aergistal

+0

Câu trả lời được liên kết cho biết rằng điều này xảy ra khi bản dịch không khả dụng, nhưng nó không phải là trường hợp của tôi kể từ khi hộp văn bản đang được điền chính xác trong pt-BR. Thật kỳ lạ nhưng có thể tùy thuộc vào cấu trúc dữ liệu của Google. –

Trả lời

0

Mã ngôn ngữ cho Bồ Đào Nha Brazil là "pt_br" thay vì "pt-BR" để sửa lại liên kết đến:

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

Hóa ra, tôi đã sai ... một trong hai pt-BR hoặc pt_br làm việc.

Các getPlace không trả lại kết quả theo ngôn ngữ, đây là một lỗi tồn tại trong bản đồ google: https://code.google.com/p/gmaps-api-issues/issues/detail?id=7891

Một giải pháp hacky là để đọc các đầu vào autocomplete kể từ khi nó được chuyển đổi sang các ngôn ngữ cụ thể. Nếu bạn đang sử dụng hộp tìm kiếm autocomplete bạn có thể truy vấn trên hộp văn bản đầu vào của nó, nó chỉ có một loại đầu vào của văn bản .. vì vậy bạn có thể làm như sau để có được địa chỉ đầy đủ trong ngôn ngữ đặc biệt:

$("input:text").val() 

Điều này sẽ cung cấp cho bạn địa chỉ đầy đủ, sau đó bạn sẽ phải phân tích chuỗi để nhận thông tin về thành phố, tiểu bang, quốc gia.

+0

Cảm ơn câu trả lời của bạn, nhưng tài liệu nói rằng đó là pt-BR. Dù sao tôi đã thử đề xuất của bạn và nó cũng không hoạt động. Ngôn ngữ được hỗ trợ: https://developers.google.com/maps/faq#languagesupport –

+1

hmm .. tôi thấy .. không may .. đây là lỗi trong bản đồ google ..: https://code.google.com/p/gmaps-api-issues/issues/detail? id = 7891 – Rohit

+1

này, hãy xem giải pháp hacky, nó có thể làm việc cho bạn – Rohit

Các vấn đề liên quan