0

我正在开发一个应用程序,在该应用程序中,我拥有地点数据库作为字符串形式的地址。使用地理编码器我得到相同的纬度/经度。我也完成了我当前的位置。现在,我希望从当前位置靠近我的数据库中的 4-5 个位置。关于这一点的另一件事是,首先我希望在 ListView 中显示最近的 4-5 个位置的地址,如果您单击其中任何一个,它将显示您当前位置到目的地的距离及其路径的地图。

我从已经开发的应用程序中得到了这个应用程序的想法,该应用程序在 android 市场上被称为“Places”。

请帮我解决这个问题,我非常接近我的应用程序,但遇到了一些小事情。

谢谢凯尔

4

1 回答 1

2

使用Location.distanceTo()获取与当前位置和数据库中所有位置的距离列表。

对结果进行排序,选择与当前位置距离最小的前 5 个。获取地址并将此列表以字符串数组的形式传递给新的列表活动

因为我想做的是我从 distance.To() 获得的 5best 最近的位置

获得这些位置后,您可以将其以格式的字符串发送

字符串 topFive = "lat1,lon1 lat2,lon2 lat3,lon3 ..."

Intent intent = new Intent(getBaseContext(), YourListActivity.class);
intent.putExtra("TOP_FIVE_LOCATIONS", topFive );
startActivity(intent)

onCreate()YourListActivity.java

String topFive = getIntent().getStringExtra("TOP_FIVE_LOCATIONS");

现在使用拆分此字符串String.split(" "),您将拥有一个字符串 [] 位置。再次用“,”分割并使用解析纬度,经度Double.parseDouble()

接下来你需要了解ListViews,我将指导你看一个教程。

一旦您创建了ListView, 以在适配器中设置纬度、经度数据,ListView将在此适配器中呈现数据。

如果您单击列表,将以格式正确的方式显示在列表中的方法

使用setOnItemClickListener()获取项目点击事件 您使用字符串坐标启动下一个活动,就像以前一样。这是一个地图视图。

然后它将显示该选定项目的地图以及从您当前位置到该选定项目的距离以及路径。

请参阅此内容以了解如何在 MapView 上画线。

采取婴儿步骤,因为您对此很陌生。

于 2011-11-04T04:50:00.990 回答