2015-12-20 14 views
6

Chúng tôi sử dụng dự đoán API Google Địa điểm tương tự như trong ứng dụng mẫu. Khi lựa chọn kết quả, chúng tôi nhận được các chi tiết cho vị trí được dự đoán bằng cách sử dụng:Cách phân tích Địa chỉ từ Google Địa điểm GeoDataApi cho Android, (address_components missing)

Places.GeoDataApi.getPlaceById(mGoogleApiClient, placeId); 

Điều này làm việc tốt, vấn đề của tôi là kết quả chỉ chứa một chuỗi là địa chỉ.

Khi sử dụng JS version of the API, kết quả chứa này:

"address_components" : [ 
    { 
     "long_name" : "522", 
     "short_name" : "522", 
     "types" : [ "street_number" ] 
    }, 
    { 
     "long_name" : "Overtoom", 
     "short_name" : "Overtoom", 
     "types" : [ "route" ] 
    }, 
    { 
     "long_name" : "Amsterdam-West", 
     "short_name" : "Amsterdam-West", 
     "types" : [ "sublocality_level_1", "sublocality", "political" ] 
    }, 
    { 
     "long_name" : "Amsterdam", 
     "short_name" : "Amsterdam", 
     "types" : [ "locality", "political" ] 
    }, 
    { 
     "long_name" : "Amsterdam", 
     "short_name" : "Amsterdam", 
     "types" : [ "administrative_area_level_2", "political" ] 
    }, 
    { 
     "long_name" : "Noord-Holland", 
     "short_name" : "NH", 
     "types" : [ "administrative_area_level_1", "political" ] 
    }, 
    { 
     "long_name" : "Nederland", 
     "short_name" : "NL", 
     "types" : [ "country", "political" ] 
    }, 
    { 
     "long_name" : "1054", 
     "short_name" : "1054", 
     "types" : [ "postal_code_prefix", "postal_code" ] 
    } 
    ], 

Nhưng các thông tin trên bên address_components là mất tích khi sử dụng API trên Android. Làm cách nào để nhận thông tin này trên Android bằng API địa điểm của Google?

+0

Cậu giải quyết điều đó không ?? Tôi có cùng issuse ??? –

+0

Không, tôi buộc phải sử dụng api js cho thông tin này. –

+2

Cố gắng sử dụng Geocoder.getFromLocationName (String locationName, int maxResults) – hawa11

Trả lời

7

Thật không may câu trả lời là "Bạn không thể."

Google không cung cấp dữ liệu có phản hồi có cấu trúc cho việc triển khai Android của API đó.

Bạn có thể thử phân tích các văn bản địa chỉ, nhưng theo my answer to a related post, đây là xa tầm thường:

  1. Bạn tìm ra một cách thông minh để phân tích chuỗi đó. Rất tiếc, cấu trúc đường phố/ngoại ô/thị trấn/tỉnh thực tế không nhất quán trên các khu vực khác nhau (ví dụ: Cape Town ở Nam Phi có cấu trúc câu khác nhau ở Johannesburg ở Nam Phi). Vì vậy, phân tích cú pháp của bạn quy tắc cần phải rất thông minh.
  2. Bạn sử dụng API Google khác. API JavaScript cung cấp dữ liệu có cấu trúc cho cuộc gọi có liên quan. Rất tiếc, Google khuyên bạn nên sử dụng để chống lại việc sử dụng kỹ thuật này.

Một đồng nghiệp của tôi đã đăng vấn đề này với Google:

+0

Công việc tốt trả lời cả hai câu hỏi :) –

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