2010-09-04 36 views

Trả lời

2

Bạn sẽ phải sử dụng một Geocoding Service, giống như những người được cung cấp bởi Google hoặc tự do có sẵn Nominatim. Lưu ý rằng vì bạn sẽ chỉ cung cấp mã ZIP, bạn có thể không nhận được kết quả mong muốn do sự thiếu chính xác của địa chỉ.

+2

Ngoài ra (ít nhất là cho Google), hãy đảm bảo bạn điền vào càng nhiều chi tiết càng tốt và thậm chí có thể đặt một số tùy chọn khu vực để đảm bảo mã ZIP được tìm kiếm ở quốc gia bạn mong đợi. Đối với các định dạng mã ZIP giữ khoảng trắng, bạn có thể muốn xóa những thứ đó trước tiên, nếu không, Google chỉ có thể sử dụng phần đầu tiên và hiển thị cho bạn một quốc gia khác. – Arjan

3

Bạn có thể sử dụng YQL như vậy: chọn trọng tâm từ geo.places nơi text = "ZIPCODE_HERE"

19

Đây là một giải pháp đơn giản hơn nhiều, giả sử các dịch vụ geocoder có mặt:

final Geocoder geocoder = new Geocoder(this); 
final String zip = "90210"; 
try { 
    List<Address> addresses = geocoder.getFromLocationName(zipCode, 1); 
    if (addresses != null && !addresses.isEmpty()) { 
    Address address = addresses.get(0); 
    // Use the address as needed 
    String message = String.format("Latitude: %f, Longitude: %f", 
    address.getLatitude(), address.getLongitude()); 
    Toast.makeText(this, message, Toast.LENGTH_LONG).show(); 
    } else { 
    // Display appropriate message when Geocoder services are not available 
    Toast.makeToast(this, "Unable to geocode zipcode", Toast.LENGTH_LONG).show(); 
    } 
} catch (IOException e) { 
    // handle exception 
} 
+0

Nó không hoạt động. Đưa ra ngoại lệ "Dịch vụ không khả dụng" .. Bạn có cách tiếp cận tốt hơn không? – YuDroid

4

Có không có đối thủ nào của Google trong GeoCoding :)

Bạn chỉ cần thực hiện một yêu cầu http Nhận được yêu cầu cho liên kết sau. Dưới đây là a link

Chỉ thay đổi mã tử bưu Theo yêu cầu của bạn. Và tận hưởng.

Để tham khảo thêm, hãy làm theo liên kết. Maps Geocoding Reference

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