我的问题是我有4个位置的纬度和经度进入我的本地数据库,我正在获取这些数据并用于android中的绘制路径路径但问题是第一个到第二个位置路线不显示在mapview其他第二到第三和第三第四条路径显示在mapview上。对不起英语沟通不好。
我从以下链接获取绘制路径路径的代码。
并使用以下函数调用绘图类: -
public void drawpath(){
mDb.open();
Cursor cr = mDb.getAllTitles();
cr.moveToFirst();
if (cr.getCount() > 0) {
for (int i = 0; i <= cr.getCount()/2; i++) {
fromlat = Double.parseDouble(cr.getString(1));
fromlng = Double.parseDouble(cr.getString(2));
cr.moveToNext();
tolat = Double.parseDouble(cr.getString(1));
tolng = Double.parseDouble(cr.getString(2));
String url = RoadProvider
.getUrl(fromlat, fromlng, tolat, tolng);
InputStream is = getConnection(url);
mRoad = RoadProvider.getRoute(is);
MapOverlay mapOverlay = new MapOverlay(mRoad, mapView);
List<Overlay> listOfOverlays = mapView.getOverlays();
listOfOverlays.add(mapOverlay);
mapView.invalidate();
}
}
cr.close();
mDb.close();
}
答案 0 :(得分:0)
Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
startActivity(intent);
答案 1 :(得分:0)
这种情况正在发生,因为您使用的是cr.getCount()/2.
如果您的计数数量均匀,那么它将无法正常工作
例如,如果您有4行,那么cr.getCount()/2 = 2
所以你的循环将从0继续到2意味着3次。
实际上它应该是你的编码继续2次。
现在lat取奇数5说cr.getCount()/2 = 2
因为我是整数值所以你的循环总共会工作3次。
所以你有不同的机制。
比如尝试在arraylist中添加所有lat和long,然后在循环完成后添加。
创建一个包含该arrayList大小的循环并创建一个路径。可能需要两个额外的变量来存储前一个lat和long。