2014-11-25 2 views
0

построить алгоритм, чтобы найти многоугольник, построенный четырьмя наборами long long, и передать текущий lat long, чтобы определить, принадлежит ли множество lat long к этому многоугольнику или нет. Но текущая долгота и долгота не точны. в android, используя GPS и сетевую систему для отслеживания текущей широты и долготы.Хотите построить систему отслеживания посещаемости с широтой и долготой GPS

public void find current_lat_long(){ 
com.example.gps.AppLocationService appLocationService = new com.example.gps.AppLocationService(
      Map_Location.this); 
    Location gpsLocation = appLocationService 
      .getLocation(LocationManager.GPS_PROVIDER); 
    Location nwLocation = appLocationService 
      .getLocation(LocationManager.NETWORK_PROVIDER); 
    if (gpsLocation != null) { 
     latitude_gps_calc_lat = gpsLocation.getLatitude(); 
     longitude_gpa_calc_lng = gpsLocation.getLongitude(); 
     constant.lat=String.valueOf(gpsLocation.getLatitude()); 
     constant.longitude=String.valueOf(gpsLocation.getLongitude()); 
     constant.flag_gps=false; 
     String latlong_gps = String.valueOf(gpsLocation.getLatitude())+String.valueOf(gpsLocation.getLongitude()); 
//  lat1_string=constant.lat; 
//   long_1_string=constant.longitude; 

      lat4_string=constant.lat; 
      long_4_string=constant.longitude; 

     return true; 
    } 
    else if (nwLocation != null) 
     { 
       latitude_network_provider = nwLocation.getLatitude(); 
       longitude_network_provider = nwLocation.getLongitude(); 
       constant.flag_network=false; 
       latlong__network_provider =String.valueOf(latitude_network_provider)+String.valueOf(longitude_network_provider); 

       constant.lat=String.valueOf(latitude_network_provider); 
       constant.longitude=String.valueOf(longitude_network_provider); 
        lat4.setText(constant.lat+constant.longitude); 
        lat4_string=constant.lat; 
        long_4_string=constant.longitude; 

      return true; 


    } 

}

Пожалуйста, помогите найти точные Lat долго отслеживать, что лат давно принадлежат к конкретному многоугольник.

+0

Что вы точно хотите? Просьба уточнить ваши потребности –

+0

Вы хотите найти эти длинные точки? Или проверить, принадлежит ли новая точка этому полигону? –

+0

просто получите размытое изображение того, что вы пытаетесь сделать, пожалуйста ** пункт пули ** ваши требования или сомнения в кодировании и т. Д. – nobalG

ответ

0

Вы можете найти местоположение с помощью ниже код:

Объявите переменную:

LocationManager lm; 
LocationListener ll; 

Старт Место слушателя:

lm = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE); 
    ll = new startLocationListener(); 
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,ll); 

Место слушателя:

class gpsLocationListener implements LocationListener { 

    public void onLocationChanged(Location location) { 
     if (location != null) { 
      String latitude = location.getLatitude(); 
      String longitude = location.getLongitude();     
     } 
    } 

    public void onProviderDisabled(String provider) { 
    } 

    public void onProviderEnabled(String provider) { 
    } 

    public void onStatusChanged(String provider, int status, Bundle extras) { 
    } 

} 

После нахождения местоположения вы можете остановить слушателя, используя это в onLocationChanged:

lm.removeUpdates(ll); 
lm = null; 
+0

не работает вообще. не возвращая правильный и точный результат ... –

+0

Он работает, вы можете получить lat long, используя это. Откуда вы это назвали? Вызов этого слушателя предоставит вам точное местоположение в методе onLocationChanged слушателя. –

+0

yeh Я знаю, что он не работает в том смысле, что когда я перехожу из одного места в другое, он возвращает одни и те же длинные латы, когда я хочу установить четыре длинных латинских точки, я изменил свое местоположение, но диспетчер местоположения не обновляется соответственно –

Смежные вопросы