情况:我正在使用osmdroid路由从我的位置导航到预目标。只有当起始坐标完全位于街道上时,此方法才有效。但是,如果开始坐标距街道只有一点点距离,osmdroid将只绘制一条直线。以下两个例子说明了这一点:
示例1:从坐标a(在街道上)导航到坐标b(离街道有点远):
示例2:从坐标b(离街道有点远)导航到坐标a(在街道上):
示例1和示例2使用完全相同的代码生成,但示例1是从a到b,示例2是从b到a。使用以下代码执行此操作(坐标a是代码中的起点,坐标b是终点):
RoadManager roadManager = new OSRMRoadManager(this);
GeoPoint startPoint = new GeoPoint(47.4660, 8.3266);
GeoPoint endPoint = new GeoPoint(47.4082, 8.3320);
ArrayList<GeoPoint> waypoints = new ArrayList<GeoPoint>();
waypoints.add(endPoint);
waypoints.add(startPoint);
Road road = roadManager.getRoad(waypoints);
Polyline roadOverlay = RoadManager.buildRoadOverlay(road);
map.getOverlays().add(roadOverlay);
map.invalidate();
我怎样才能从所有坐标中画出一条正确的路线-即使它们离最近的街道有点远?或者有没有办法从一个地点到最近的街道?
非常感谢你的帮助
编辑
在logcat中,我得到以下消息-no value for exit可能意味着一些重要的事情,但我不知道是什么。如果我将请求粘贴到浏览器中,它将非常有效: 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: org.json.JSONException: No value for exit 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at org.json.JSONObject.get(JSONObject.java:399) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at org.json.JSONObject.getInt(JSONObject.java:488) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at org.osmdroid.bonuspack.routing.OSRMRoadManager.getRoads(OSRMRoadManager.java:247) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at org.osmdroid.bonuspack.routing.OSRMRoadManager.getRoad(OSRMRoadManager.java:284) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at com.interacode.fahrapp.NavigateSimulation$UpdateRoadTask.doInBackground(NavigateSimulation.java:236) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at com.interacode.fahrapp.NavigateSimulation$UpdateRoadTask.doInBackground(NavigateSimulation.java:225) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at android.os.AsyncTask$3.call(AsyncTask.java:378) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:266) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 2021-04-19 22:54:15.301 1648-1911/com.interacode.fahrapp W/System.err: at java.lang.Thread.run(Thread.java:919)
暂无答案!
目前还没有任何答案,快来回答吧!