我需要在導航器中使用osmdroid製作MapView。駕駛員通過從服務器取走的路線駕駛汽車。由於路線始終位於地圖上他的位置,因此應該爲他旋轉地圖。問題是我無法爲每個旋轉找到正確的角度。有時它起作用,有時不起作用。例如,如何定義旋轉將在1米內?也許,是osmdroid中的一些庫或類可以幫助我解決這些問題?在osmdroid中通過路徑旋轉MapView
0
A
回答
0
我找到了解決方案。此方法計算出旋轉地圖的正確度數。我把我的路線切成直線。當前位置靠近下一行時,我稱這種方法爲
public double rotateToNextCheckPoint() {
int lineId = OfferPreference.getInstance().getCurrentLineId();
if (rotates != null && lineId >= 0 && road.mRouteHigh.size() > 0) {
if (lineId < (rotates.size() - 1)) {
GeoPoint nextPoint = rotates.get(lineId).getLast();
GeoPoint currPoint = rotates.get(lineId).getFirst();
if (nextPoint == null || currPoint == null) {
return 0;
}
double lat1 = Math.toRadians(currPoint.getLatitude());
double lon1 = Math.toRadians(currPoint.getLongitude());
double lat2 = Math.toRadians(nextPoint.getLatitude());
double lon2 = Math.toRadians(nextPoint.getLongitude());
double cos1 = Math.cos(lat1);
double cos2 = Math.cos(lat2);
double sin1 = Math.sin(lat1);
double sin2 = Math.sin(lat2);
double delta = lon2 - lon1;
double deltaCos = Math.cos(delta);
double deltaSin = Math.sin(delta);
double x = (cos1 * sin2) - (sin1 * cos2 * deltaCos);
double y = deltaSin * cos2;
double z = Math.toDegrees(Math.atan((-y/x)));
if (x < 0) {
z += 180;
}
double z2 = (z + 180) % 360 - 180;
z2 = -Math.toRadians(z2);
double angleRad = z2 - (Math.PI * 2 * Math.floor(z2/(2 * Math.PI)));
double angle = Math.toDegrees(angleRad);
rotationGestureOverlay.onRotate(-(float) angle, false);
return angle;
}
}
return 0;
}
0
我認爲你要做的最好的是根據設備指南針和/或GPS標題定位地圖。 Osmdroid沒有內置任何東西。
當你從服務器獲得路線時,你能計算出你正在使用哪條腿嗎?如果是這樣,你應該能夠弄清楚什麼時候旋轉地圖。
相關問題
- 1. Osmdroid地圖旋轉
- 2. 在Android中旋轉MapView
- 3. Android旋轉MapView
- 4. 通過SVG路徑獲取動畫div中的旋轉量
- 5. Mapview繪製路徑路徑
- 6. osmdroid - mapview中的片段
- 7. 更改OSMDroid瓷磚路徑
- 8. 附加影片剪輯沿路徑與旋轉(通過AS3)
- 9. 旋轉幾何路徑
- 10. 石英2D路徑旋轉
- 11. 僅旋轉MapView的內容
- 12. 通過螺旋路徑一個在另一個使用jquery
- 13. ios6中的mapView中的路徑追蹤
- 14. 在調試時旋轉Mapview錯誤
- 15. SVG發現路徑的旋轉角度
- 16. 計算沿路徑的旋轉
- 17. 核心圖形旋轉路徑
- 18. 旋轉文本路徑:文本
- 19. 在MapView上跟蹤用戶路徑?
- 20. Flex 4,旋轉過渡,使用最短路徑?
- 21. 通過CSS旋轉html body
- 22. 通過CSS旋轉圖像
- 23. 在3d中沿着Bézier路徑移動對象:旋轉問題
- 24. 在橢圓路徑中旋轉某些元素
- 25. 在畫布中旋轉兩個分離對象(路徑)
- 26. 在Flash中移動路徑時的對象旋轉
- 27. 旋轉MapView時不應旋轉覆蓋層?
- 28. osmdroid MapView的禁止放大/縮小
- 29. 不可能實例化一個OsmDroid MapView
- 30. 路徑配置通過CEDET