Android: реализация широты и долготы - PullRequest
1 голос
/ 05 января 2012

Я разрабатываю приложение, в котором мне нужно получить информацию о широте и долготе, и я получаю детали, но когда я помещаю эти данные в http://itouchmap.com/latlong.html, я получаю неправильное местоположение. Мой код выглядит следующим образом:

 Log.v("----------","mlocManager");
    mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    mlocListener = new MyLocationListener();
    mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 300000, 40,  mlocListener);

и класс местоположения выглядит следующим образом:

public class MyLocationListener implements LocationListener
 {
    public void onLocationChanged(final Location loc)
    {


        try 
        {

        System.out.println("............ ..............................Location changedin 11");
        latitude = loc.getLatitude();// here the app is getting lat
        longitude = loc.getLongitude(); // and here long
        altitude=loc.getAltitude();

        String s= Double.toString(latitude);
        String lat=s.substring(0, 2);
        String lat1=s.substring(3, 5);
        String lat2=s.substring(5, 7);
        String lat3=s.substring(7, 9);

          finallat=lat+(char) 0x00B0 +lat1+"'"+lat2+"."+lat3+"''";
        System.out.println("finallat"+finallat);


        String s1= Double.toString(longitude);
        String longt=s1.substring(0, 2);
        String longt1=s.substring(3, 5);
        String longt2=s.substring(5, 7);
        String longt3=s.substring(7, 9);

         finalllong=longt+(char) 0x00B0 +longt1+"'"+longt2+"."+longt3+"''";
        System.out.println("finallong:"+finalllong);

        System.out.println("newwwwww"+(char) 0X00B1);

        loc.getAccuracy();
        System.out.println("altitude   : "+loc.hasAltitude());



        latitudee=(TextView)findViewById(R.id.latitudee);
        latitudee.setText(finallat);

        longitudee=(TextView)findViewById(R.id.longitudee);
        longitudee.setText(""+finalllong);

        accuracyy=(TextView)findViewById(R.id.accuracyy);
        accuracyy.setText(""+(char) 0X00B1+loc.getAccuracy()+"m");
        System.out.println("acc : "+""+(char) 0X00B1+loc.getAccuracy()+"m");

        System.out.println("alti:"+altitude);



          }

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

1 Ответ

1 голос
/ 10 января 2012

Используйте GPS-провайдер вместо Сетевой провайдер , и он работает, и мой код выглядит следующим образом:

mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 300000, 40,  mlocListener);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...