Đây là tình huống:Kiểm tra xem người dùng có gần trạm kiểm soát tuyến đường với GPS
Tôi có tuyến đường GPS được xác định trước mà người dùng sẽ chạy. Các tuyến đường có một số trạm kiểm soát và người dùng nên vượt qua gần tất cả chúng (nghĩ về chúng như là một trạm kiểm soát trò chơi đua xe, mà ngăn cản người dùng lấy phím tắt). Tôi cần đảm bảo rằng người dùng đi qua tất cả các trạm kiểm soát. Tôi muốn xác định một khu vực sẽ được xem xét bên trong bán kính của một trạm kiểm soát, nhưng tôi không muốn nó chỉ là một khu vực xuyên tâm, nó phải là một khu vực xem xét hình thức của con đường. Bạn không hiểu điều đó? Tôi cũng không nhìn vào hình ảnh được vẽ kém này để hiểu rõ hơn:
Đường màu đen biểu thị đường được xác định trước, quả bóng màu xanh là điểm kiểm tra và đa giác màu xanh là khu vực mong muốn. Đường màu xanh lá cây là người dùng chính xác hơn và đường màu đỏ là người dùng kém chính xác hơn (một gã say rượu lái xe có thể? Lol). Cả hai dòng phải nằm trong đa giác, nhưng người dùng bỏ qua hoàn toàn tuyến đường không nên.
Tôi đã thấy một nơi nào đó ở đây một chức năng để kiểm tra là người dùng nằm trong một đa giác như thế này, nhưng tôi cần biết cách tính đa giác.
Mọi đề xuất?
EDIT:
Tôi đang xem xét việc sử dụng đơn giản distanceTo() để chỉ cần vẽ một vòng tròn tưởng tượng và kiểm tra xem người dùng là ở đó. Điều đó là tốt bởi vì rất đơn giản để thực hiện và hiểu, và xấu bởi vì để đảm bảo người dùng dễ dàng nhất vượt qua whithin trạm kiểm soát, tôi sẽ cần bán kính lớn, làm cho người dùng chính xác vào khu vực điểm kiểm tra sớm hơn dự kiến.
Và chỉ để các bạn hiểu rõ hơn tình huống, đây là ứng dụng được cho là được sử dụng trong giao thông (ô tô hoặc xe buýt), và các trạm kiểm soát phải là cột mốc hoặc các điểm phân chia tuyến đường của bạn. nơi kẹt xe bắt đầu hoặc dừng lại.
Tại sao bạn cần đa giác thay vì sử dụng vòng tròn bên trong? – SERPRO