Карты загружаются очень медленно - PullRequest
0 голосов
/ 27 июля 2011

Мое приложение включает в себя действия по получению координат моего текущего местоположения, а затем показывает маршрут к пункту назначения, для которого я дал координаты. Проблема в том, что загрузка карты и получение маршрута занимает часы.Как это сделать быстрее, пожалуйста. И я использую приложение «Карта» в мобильном телефоне для получения функциональности карты.Вот код, который я использую

package com.map;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Toast;

public class MapRouteActivity extends Activity {
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
    LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
  LocationListener mlocListener = new MyLocationListener();
  mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
  mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener);
 }


 public class MyLocationListener implements LocationListener
 {
  public void onLocationChanged(Location loc)
  {
   loc.getLatitude();
   loc.getLongitude();
   String Text = "My current location is: " + "Latitud = " + loc.getLatitude() +"Longitud = " + loc.getLongitude();
   Toast.makeText( getApplicationContext(),Text,Toast.LENGTH_SHORT).show();

   Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
     Uri.parse("http://maps.google.com/maps?saddr="+loc.getLatitude()+","+loc.getLongitude()+"&daddr=18.5204303,73.8567437"));
   startActivity(intent);
  }
  @Override
  public void onProviderDisabled(String provider)
  {
   Toast.makeText( getApplicationContext(),"Gps Disabled",Toast.LENGTH_SHORT ).show();
  }
  @Override
  public void onProviderEnabled(String provider)
  {
   Toast.makeText( getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show();
  }
  @Override
  public void onStatusChanged(String provider, int status, Bundle extras)
  {
  }
 }
}

1 Ответ

0 голосов
/ 01 августа 2011

GPS занимает время, чтобы получить исправление.Он должен сканировать много частот, прежде чем он на самом деле триангулирует вашу позицию.Код, который вы написали, запускает Google Maps после получения действительного исправления.(на onLocationChanged())

Вместо этого вы можете использовать MapView .Таким образом, ваша карта будет загружена намного быстрее, и вам даже не придется ждать правильного исправления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...