2011-01-10 40 views
8

Cách nào có thể là cách tốt nhất để nhận vị trí cho một mã zip nhất định. nó sẽ làm việc cho các nước bên ngoài Mỹ/Canada .ThanksiOS Tìm vị trí (Vĩ độ, kinh độ) từ Mã bưu điện

+0

Bạn có thể tìm thấy vị trí bằng cách cung cấp địa chỉ của vị trí đó – Aditya

+0

Đối với lời cầu xin tham khảo sau này tham khảo ở đây: - http://stackoverflow.com/questions/9606031/ios-mkmapview-place-annotation-by -using-address-instead-of-lat-long – StuartM

Trả lời

6

Sử dụng API của Google geolocating (thử nó ra trên google.com/maps):

đầu vào cho một mã bưu điện Thụy Sĩ ví dụ: CH-9014

hoặc một pháp: FR-34000

hoặc Đức: de-12101

hoặc Mỹ: chúng tôi-90210

hoặc canada: ca-J5Z 1A1

hoặc china: cn-100000

cho example:

sản lượng

{ 
    "status": "OK", 
    "results": [ { 
    "types": [ "postal_code" ], 
    "formatted_address": "9014 St Gallen, Switzerland", 
    "address_components": [ { 
     "long_name": "9014", 
     "short_name": "9014", 
     "types": [ "postal_code" ] 
    }, { 
     "long_name": "St Gallen", 
     "short_name": "St Gallen", 
     "types": [ "locality", "political" ] 
    }, { 
     "long_name": "Sankt Gallen", 
     "short_name": "SG", 
     "types": [ "administrative_area_level_1", "political" ] 
    }, { 
     "long_name": "Switzerland", 
     "short_name": "CH", 
     "types": [ "country", "political" ] 
    } ], 
    "geometry": { 
     "location": { 
     "lat": 47.4082855, 
     "lng": 9.3323890 
     }, 
     "location_type": "APPROXIMATE", 
     "viewport": { 
     "southwest": { 
      "lat": 47.3991076, 
      "lng": 9.3180504 
     }, 
     "northeast": { 
      "lat": 47.4199564, 
      "lng": 9.3543340 
     } 
     }, 
     "bounds": { 
     "southwest": { 
      "lat": 47.3991076, 
      "lng": 9.3180504 
     }, 
     "northeast": { 
      "lat": 47.4199564, 
      "lng": 9.3543340 
     } 
     } 
    } 
    } ] 
} 

Vì vậy, Thụy Sĩ mã bưu điện 9014 tương ứng với phụ lục. đến địa điểm này:

"lat": 47.4082855, 
"lng": 9.3323890 

Xem câu trả lời của tôi trên geolocating API ở đây:
How to get GLatLng object from address string in advance in google maps?

+0

Có miễn phí không ???? –

+0

@Jagdish: Mã của tôi? Vâng. Google-api cho mục đích mạng nội bộ thương mại: không. –

1

GeoNames cung cấp một số dịch vụ mã bưu điện mã hóa địa lý khác nhau, bao gồm tìm kiếm cho vị trí của một mã bưu điện nhất định. Họ hỗ trợ một số quốc gia khác nhau.

Có thể bạn sẽ quan tâm nhất đến Placename Lookup for postalcode service

+0

Tôi chỉ tìm thấy [site] này (http://download.geonames.org/export/zip/) trên GeoNames. Nó cung cấp các tệp cho các quốc gia khác nhau với ánh xạ mã zip đến các giá trị lan/dài. Bây giờ, tôi có thể tạo một quy trình lô và lưu trữ tất cả các giá trị bắt buộc trong cơ sở dữ liệu của tôi, có thể lặp lại các giá trị lat/long cho một mã zip nhất định. Cảm ơn bạn :) – kon

1

API của Google có một số hạn chế khá khó chịu. Tốt hơn nên sử dụng các nguồn mở như GeoNames theo gợi ý của @Claus Broch.

Tôi đang thêm câu trả lời này cũng lưu ý rằng MapQuest gần đây đã đưa ra API cho dữ liệu OpenStreetMap. Nó không làm (như xa như tôi có thể nói) tìm kiếm mã zip, nhưng tên vị trí, hướng dẫn, độ cao vv là tất cả tự do truy vấn. Gần đây tôi đã phát hiện ra rằng tôi có kế hoạch thay thế các cuộc gọi của mình sang API bản đồ google với nó ngay khi có thể.

http://developer.mapquest.com/web/products/open

+0

Bạn có thể làm rõ ý của mình bằng 'các hạn chế khá khó chịu' không? –

+0

Có giới hạn về số lượng cuộc gọi bạn có thể thực hiện trong một ngày, là một. Thỏa thuận lớn hơn là, bạn chỉ được phép sử dụng api của họ cùng với việc hiển thị Google Map.Vì vậy, sử dụng nó hoàn toàn trong nền như công cụ thu thập dữ liệu nó không được phép. –

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