想要建立具有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;

    } 

}

请帮助找到准确的经度,以跟踪经度属于特定的多边形。

您可以使用以下代码查找位置:

声明变量:

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;

最新更新