2012-03-31 26 views
7

Tôi đã nghe nói về geofencing và tôi có một số nghi ngờ. Hy vọng bạn có thể trả lời một số trong số họ.iphone - Nghi ngờ về geofencing

-Nó mới cho iOS 5.1 nhưng sự khác biệt giữa tính năng định vị địa lý và vùng sử dụng là gì? Từ những gì tôi đã đọc gần như giống nhau, hết pin?

-Tại sao tôi không thể tìm thấy tài liệu hướng dẫn táo về định vị địa lý?

-Làm cách nào để xác định các khu vực? thế nào tôi có thể thêm chúng từ xa, thông qua webservice?

Cảm ơn.

+1

Guys, mọi gợi ý? – subharb

Trả lời

11

Geofencing đã thực sự xuất hiện kể từ iOS 4. Bạn có thể tìm tài liệu về nó trong Apple Location Awareness Programming Guide. Nó cũng được gọi là "giám sát khu vực".

Các khu vực này khá đơn giản để sử dụng. Tạo một CLRegion với điểm trung tâm (vĩ độ, dài), bán kính và số nhận dạng duy nhất. Sau đó gọi số -startMonitoringForRegion. Cấp cho bạn sẽ cần phải đăng ký CLLocationManagerDelegate để nghe các cuộc gọi lại, -didEnterRegion-didExitRegion, nhưng điều đó cũng khá dễ thực hiện.

Bạn không thể thêm chúng từ xa. Chỉ từ thiết bị. Tôi đã học được một vài điều về họ trong vài năm qua. Vì vậy, hy vọng điều này sẽ giúp bạn tiết kiệm một số rắc rối xuống đường.

  • Không phải tất cả các thiết bị có thể giám sát các khu vực, do đó hãy chắc chắn rằng bạn kiểm tra tính sẵn sàng
  • Có một phút và kích thước khu vực tối đa. Nếu bạn đăng ký một vùng trên hoặc dưới các giá trị đó, nó sẽ mặc định là min/max. Min là 100M, max là một cái gì đó giống như 1/3 kích thước của quả địa cầu. Khá lớn.
  • Có một số vùng tối đa mà 1 thiết bị có thể giám sát. "Hồ bơi" này của các khu vực được chia sẻ bởi tất cả các ứng dụng, và hàng rào cũ hơn sẽ bị thanh trừng để nhường chỗ cho hàng rào mới hơn. Vì vậy, hãy chuẩn bị cho điều đó. Số lượng tối đa là gần 100. Nhưng được chia sẻ giữa các ứng dụng sổ séc, lời nhắc và các ứng dụng khác ... có thể bị đốt cháy khá nhanh.
  • Đảm bảo rằng bạn chỉ có một phiên bản của người quản lý vị trí của bạn ủy quyền, nhiều phiên bản sẽ giúp bạn nhận được nhiều cuộc gọi đại biểu, tất cả họ đều lắng nghe.

Geofences là cách tuyệt vời để thêm chức năng cho các vị trí mà không có bất kỳ GPS hoạt động trên đầu và theo dõi vị trí nào có. Theo kinh nghiệm của tôi, geofences đặt ra không có cống pin đáng chú ý khi rời khỏi tất cả các thời gian. Apple đã tìm ra chúng khá tốt. Chúng không mang cùng độ chính xác như GPS hoạt động, nhưng chúng đủ gần. Chúc may mắn.

CẬP NHẬT Một số thông tin ở đây hiện có một chút. Số vùng bạn có thể theo dõi hiện là 20 và được giới hạn cho mỗi ứng dụng. Ngoài ra, kích thước tối thiểu không phải là 100M, nó có thể nhỏ hơn, nhưng độ chính xác không được đảm bảo ở các số thấp hơn.

+0

Cảm ơn câu trả lời, nó rất hữu ích cho tôi. bạn có thể vui lòng chia sẻ kinh nghiệm của bạn với độ chính xác cho CLRegions không? Tính năng định vị địa lý vẫn yêu cầu Giá trị tốt nhất hay có thể dựa trên bán kính vùng? – beryllium

+0

Tôi vẫn sử dụng độ chính xác cao nhất với ít ảnh hưởng đến thời lượng pin. Tôi đã nhận thấy rằng thời gian trên các sự kiện thoát dường như bị trì hoãn trong iOS 6. Mọi thứ vẫn hoạt động như được quảng cáo, nhưng các sự kiện thoát có thể không chính xác như trước đây. –

+0

Tôi muốn hỏi ý bạn là gì tối thiểu 100m. Tôi hiện đang làm việc trên một ứng dụng điều hướng bằng cách sử dụng tính năng định vị địa lý nhưng độ chính xác cần thiết là khoảng 10m từ một điểm. Điều này có nghĩa là tôi phải sử dụng một cách khác để làm điều đó? –

3

"Geofencing" luôn xuất hiện, kể từ iOS 4 dưới dạng "Giám sát khu vực". Nó sử dụng kiểm tra khoảng cách để xem bạn đã nhập vòng kết nối chưa. Đây không phải là địa hình thực sự, vì việc định vị địa lý thực sự đang kiểm tra xem một điểm có nằm trong đa giác hay không (được gọi là điểm trong đa giác).

Kể từ iOS 6, hiện tại không có gì giống với theo dõi vùng sử dụng điểm trong đa giác. Để thực hiện việc định vị địa lý thực sự, bạn sẽ phải sử dụng kết hợp theo dõi Vùng và GPS.Không có tài liệu của Apple cho việc định vị địa lý vì CoreLocation không hỗ trợ nó.

Nếu bạn định sử dụng phương pháp tiếp cận điểm-trong-nhiều, tôi khuyên bạn nên sử dụng phương pháp đúc ray. Có một lớp Objective-C thực hiện nó rất tốt. Nó được gọi là objc-BorderPatrol.

Đối với việc gửi hàng rào từ một dịch vụ web, có thể thực hiện điều gì đó tương tự với API phát trực tuyến của Twitter, nhưng điều đó có thể quá chuyên sâu. Tốt hơn nên sử dụng Vị trí quan trọng để cập nhật hàng rào của bạn. Nếu bạn định gửi hàng rào từ dịch vụ web, tôi khuyên bạn nên sử dụng MySQL hoặc PostGRE SQL vì cả hai đều có phần mở rộng không gian địa lý thực sự tốt.

Một vài lưu ý: ->-[CLRegion containsCoordinate:] không bao giờ được gọi bởi bất kỳ đối tượng CoreLocation nào. Tất cả các kiểm tra khoảng cách là nội bộ. -> Cập nhật vị trí quan trọng mỗi 500m hoặc 5 phút, tùy điều kiện nào đến trước. Vị trí quan trọng sử dụng địa chỉ IP từ tháp di động để xác định vị trí. -> Geofences và khu vực có thể chồng lên nhau, theo dõi điều này.

+0

objc-BorderPatrol có hoạt động hoàn hảo không? Tôi muốn đưa nó vào ứng dụng của mình – hasan83

+0

objc-BorderPatrol không còn được duy trì nữa. Bạn sẽ được phục vụ tốt hơn bằng cách viết vị từ điểm-in-poly của riêng bạn. –

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