2010-07-03 20 views
5

Tôi đang xây dựng một ứng dụng web yêu cầu người dùng cung cấp vị trí của họ (tương tự như cách Facebook thực hiện). Tôi không chắc chắn về cách tốt nhất để thực hiện điều này. Tôi yêu cầu khả năng tìm kiếm thông qua hồ sơ của một thực thể khác (gọi đó là 'sự kiện') cũng có vị trí thực tế gắn với nó và khớp với người dùng ở cùng một vị trí hoặc gần đủ. Tôi chỉ cần giải quyết cho từng thành phố/thị trấn.Thực hành tốt nhất cho vị trí thực tế của người dùng (đầu vào, kiểu dữ liệu, hiển thị và xác thực)

Cách tôi cho phép người dùng cung cấp vị trí của họ (bao gồm xác thực và cách thức tự do tôi cho phép đầu vào này), cách lưu trữ trường này trong DB, v.v ... rõ ràng phụ thuộc vào nhau. Suy nghĩ hiện tại của tôi là cho phép nhập dạng tự do, lưu trữ dưới dạng chuỗi văn bản và khớp bằng cách chia chuỗi vị trí thành mảng (được phân tách bằng dấu phẩy và dấu chấm), sau đó so sánh mảng vị trí người dùng với mảng vị trí sự kiện.

Có cách nào để tôi có thể làm cho vấn đề dễ dàng hơn đối với bản thân mình bằng cách xác thực danh sách các vị trí được cung cấp bởi dịch vụ web ở đâu đó không? Các vấn đề này thường được xử lý như thế nào?

Bất kỳ trợ giúp nào sẽ được đánh giá rất nhiều!

Trả lời

2

Tôi nghĩ rằng cách tiếp cận của bạn có thể chấp nhận được tùy thuộc vào độ chính xác mà bạn yêu cầu.

Cách tiếp cận chính xác hơn (và có lẽ phức tạp hơn) sẽ thực sự lưu trữ tất cả các vị trí trong tọa độ. Bạn có thể sử dụng dịch vụ web định vị địa lý (tôi tin rằng Google cũng cung cấp một dịch vụ web) để ánh xạ các tên vị trí vào tọa độ. Bạn cũng có thể sử dụng vị trí địa lý dựa trên IP để cố gắng đoán người dùng ở đâu để họ không nhất thiết phải nhập địa chỉ của chính họ. Có các công thức (và có thể là thư viện) để tính toán khoảng cách giữa các tọa độ tương đối với nhau, điều này sẽ giúp dễ dàng hiển thị mọi thứ trong bán kính nhất định từ tọa độ và nội dung của người dùng như vậy.

Bạn cũng có thể xem xét sử dụng mới HTML5 geolocation API được hỗ trợ bởi các trình duyệt mới nhất

+0

+1 cho API vị trí địa lý – Gordon

+0

Tôi không chắc chắn cách API vị trí địa lý có thể giúp tôi - nếu người dùng cung cấp vị trí không hợp lệ không hợp lệ với API, sau đó đo khoảng cách giữa người dùng và vị trí của sự kiện (sẽ được chỉ định tốt hơn với địa chỉ đường phố/vị trí API của Google 'địa điểm') là không thể. – ubermensch

+0

Bạn có thể sử dụng API địa lý để phát hiện vị trí của người dùng từ các thiết bị như iPhone mà không cần phải nhập thủ công (hoặc biết) vị trí chính xác của họ. Tất nhiên nó có thể hoặc có thể không hữu ích cho bạn tùy thuộc vào loại ứng dụng bạn đang làm việc trên. –

0

Nếu bạn cần phải làm những việc như "người dùng lọc theo location" thì đó là tốt nhất (tôi nghĩ) để có một danh sách được xác định trước của các vị trí mà người dùng chọn từ (ví dụ: với một số loại đầu vào được đề xuất, thay vì danh sách thả xuống với hàng nghìn vị trí).

Bạn có thể bắt đầu với dữ liệu từ http://www.geonames.org/ (có thể bạn sẽ cần phải làm một số dọn dẹp). Ngoài ra, bạn có thể bắt đầu với một cơ sở dữ liệu trống và càng nhiều vị trí được người dùng nhập vào, càng có nhiều vị trí bạn phải đề xuất cho người dùng tiếp theo để họ không chèn các biến thể trùng lặp của cùng một vị trí.

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