найти ближайшую точку GPS к местоположению пользователя из списка

то, что я пытаюсь сделать: пользователь выбирает начало и пункт назначения на карте, а затем по их координатам я хочу показать местоположение ближайшей точки из списка местоположений на карте. У меня есть простая база данных Sqlite, содержащая долготу, широту и названия возможных мест.

Я провел небольшое исследование и вот что я нашел:

http: //www.scribd. есть ли возможность, что я могу сделать что-то подобное, используя android api или внешние библиотеки?

public Point dialogFindClosestLocationToPoint(geometry.Point aStartPoint){
List helperList=new ArrayList();
try {
openDataBase();
Cursor c=getCursorQueryWithAllTheData();
if(c.moveToFirst())
 do{
  PointWithDistance helper=new PointWithDistance(c.getDouble(1),c.getDouble(2),c.getString(3));
  int distance=returnDistanceBetween2Points(aStartPoint, helper);
  if(distance

это код в классе PointComparator ():

   public int compare(PointWithDistance o1, PointWithDistance o2) {
  return (o1.getDistance()

где PointWithDistance - это объект, содержащий: lat, long , distance, name

, однако это решение не предоставляет правильную информацию о возврате ... и я понимаю, что это совсем не масштабируемое и очень медленное. Мне нужно решение, которое будет быстро выполняться с базой данных с макс. 1000 строк.

edit: моя ошибка в этом коде при сортировке, теперь я изменил ее (должно быть )

6
задан DArkO 29 October 2010 в 07:47
поделиться