將路由作爲一組位置使用,我想知道用戶何時使用地理圍欄偏離路徑。目前,我正在爲路線上的每個位置創建一個地理圍欄,但它並不真正以合理的方式覆蓋路線(如下所示)。Android中路由的地理柵欄
目前,我只能想到的路線上手工計算的位置每X米,增加更多的地理圍欄,但它似乎更像是一個樂隊援助,而不是一個好的解決方案。
有沒有辦法實現類似於沒有許多小地理柵欄的第二張照片,還是這是唯一的方法?
謝謝。
將路由作爲一組位置使用,我想知道用戶何時使用地理圍欄偏離路徑。目前,我正在爲路線上的每個位置創建一個地理圍欄,但它並不真正以合理的方式覆蓋路線(如下所示)。Android中路由的地理柵欄
目前,我只能想到的路線上手工計算的位置每X米,增加更多的地理圍欄,但它似乎更像是一個樂隊援助,而不是一個好的解決方案。
有沒有辦法實現類似於沒有許多小地理柵欄的第二張照片,還是這是唯一的方法?
謝謝。
繼羅伯特的回答,我最終在中使用了類似的方法,名稱爲PolyUtil.isLocationOnPath()
。
我認爲,如果您嘗試使用正常的地理柵欄來解決這個問題,那麼最終會出現大量覆蓋所有多邊形的地理柵欄重疊。
如果我必須解決它,我可能會去定義一個多邊形,並檢查用戶是否進/出它。
你可以檢查下面的庫來完成這個很容易。
https://github.com/sromku/polygon-contains-point
1)設置你的座標多邊形
Polygon polygon = Polygon.Builder() .addVertex(new Point(1, 3)) .addVertex(new Point(2, 8)) .addVertex(new Point(5, 4)) .addVertex(new Point(5, 9)) .addVertex(new Point(7, 5)) .addVertex(new Point(6, 1)) .addVertex(new Point(3, 1)) .build();
2)檢查用戶裏面/外面它在每個位置更改
Point point = new Point(4.5f, 7); boolean contains = polygon.contains(point);
感謝您的回答。也許我錯過了一些東西,但是我應該下載並編譯庫以便使用它?我沒有在說明中找到任何簡化的內容。 –
好吧,這是簡單的部分,你可以下載這三個文件。沒有花哨的依賴,所有的數學;)雖然公平,我不知道這個庫的確切精度。我總體上發現,當我使用它時,它非常準確和快速。 –