2010-07-09 29 views
5

Vấn đề của tôi liên quan đến việc xác nhận/chuẩn hóa đầu vào của người dùng cho sự kết hợp của Quốc gia và 'Thành phố' trong khi đăng ký. Lý tưởng nhất, tôi muốn chức năng tương tự như trang đăng ký OkCupid (http://www.okcupid.com/signup), nơi câu hỏi này được hỏi. Mất tập trung vào trường đầu vào thành phố xác nhận đầu vào bằng cách nào đó, và nó là tuyệt vời tốt ở đó. Tôi đã thử một thị trấn nông thôn nhỏ ở nông thôn Úc (pop. < 6000) và một thị trấn ngẫu nhiên ở Phần Lan, và cả hai đều được xác nhận chính xác và nhanh chóng.Bình thường hóa/Xác thực đầu vào 'Thành phố' của người dùng trong khi đăng ký

Bình thường hóa/Xác thực là quan trọng vì tôi muốn bình thường hóa trường 'Thành phố' của thực thể sự kiện do người dùng tạo để cho phép đối sánh với người dùng ở cùng một vị trí.

Xác thực này có ý nghĩa cả từ quan điểm logic ứng dụng (Tôi không muốn đối phó với 'NYC' = 'Thành phố New York' = 'New York', New York '=' New York 'quagmire) và góc nhìn người dùng (người dùng khác hiểu vị trí của người dùng).

Tôi đang sử dụng PHP và jQuery nếu điều đó tạo nên sự khác biệt, nhưng bất kỳ giải pháp nào tại thời điểm này hứa hẹn hơn là không có gì!

Cảm ơn trước!

EDIT: Đã giải quyết! Yahoo cung cấp API PlaceMaker - phân tích chuỗi vị trí dạng tự do! 50.000 yêu cầu mỗi giới hạn trong ngày:

http://developer.yahoo.com/geo/placemaker/

Trả lời

2

Giải quyết! Yahoo cung cấp API PlaceMaker - phân tích chuỗi vị trí dạng tự do! 50.000 yêu cầu mỗi giới hạn trong ngày:

http://developer.yahoo.com/geo/placemaker/

+0

Điều đó thật tuyệt vời. Liệu nó có trả lại vĩ độ và kinh độ không? –

+0

Vâng, mọi thứ. Cách đặt của nó với nhau có nghĩa là nó về cơ bản kính thiên văn để càng nhiều hoặc ít thông tin như bạn cung cấp cho nó, trong khi cung cấp một 'chất lượng' đánh giá tùy thuộc vào những gì bạn muốn biết. Ví dụ.nếu bạn muốn thông tin đường chéo ở độ phân giải không có, nó cung cấp một cái gì đó gần đó trong khi giảm giá trị 'chất lượng' nó trả về. – ubermensch

+0

Dịch vụ Vị trí và Máy tạo vị trí đã trở thành một phần của [dịch vụ BOSS] (https://developer.yahoo.com/boss/geo/) vào năm 2012. Chúng vẫn có sẵn cho ** sử dụng phi thương mại và [tỷ lệ giới hạn trong 2000 truy vấn mỗi ngày trên mỗi bảng cho mỗi ID ứng dụng] (https://developer.yahoo.com/boss/geo/docs/free_YQL.html#table_pf). – jonatan

1

Đối với mục đích xác nhận, trang web sau đây có tham chiếu đến một cơ sở dữ liệu rất toàn diện các thành phố quốc tế (và miễn phí!).

http://earth-info.nga.mil/gns/html/

Bình thường hoá là một vấn đề khó khăn hơn nhiều. Đối với điều đó, bạn rất có thể cần phải khai thác vào một sản phẩm độc quyền. Bản đồ của Google có thể là một tùy chọn.

+0

Bạn đã từng sử dụng cơ sở dữ liệu này chưa? Wiki OpenStreetMap đề cập đến một số mối quan tâm với dữ liệu (http://wiki.openstreetmap.org/wiki/GEOnet_Names_Server). Có suy nghĩ gì không? – ubermensch

+0

Trên toàn bộ nó là tốt và hữu ích, nhưng nó có một số các quirks được đề cập tại liên kết bạn cung cấp. Nó cũng có xu hướng hoạt động tốt hơn cho các thành phố có tên gốc được viết bằng bộ ký tự latin. Việc Anglicisation tên của một số thành phố châu Á đôi khi có thể là vấn đề. – btreat

1

Một cách tốt để xác nhận tên thành phố là để điều trị các văn bản như địa chỉ, và chuyển nó sang tọa độ, một quá trình được gọi là geocoding. Mã hóa địa lý cũng cung cấp dữ liệu bổ sung cho từng vị trí được xác định, mà bạn có thể sử dụng để đảm bảo nó phù hợp với yêu cầu của bạn.

API Google hỗ trợ mã hóa địa lý và miễn phí tối đa 2500 requests per day.

Bạn có thể sử dụng thư viện hiện có để tương tác với API, chẳng hạn như node-geocodergeocoder-php. Các thư viện cũng hỗ trợ một danh sách dài khác geocoding providers.

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