地图加载速度非常慢

发布于 2024-11-26 15:59:11 字数 1972 浏览 0 评论 0原文

我的应用程序包括获取我当前位置的坐标,然后显示前往我已给出坐标的目的地的路线的活动。问题是加载地图并获取路线需要几个小时。如果有人可以建议我如何到达请以更快的速度完成。我正在使用移动设备中的地图应用程序来获取地图功能。 这是我正在使用的代码

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)
  {
  }
 }
}

My app includes activity of getting coordinates of my current location and then showing the route to a destination for which i have given the coordinates.The problem is it takes hours to load the map and get the route.If anybody could suggest me how to get it done at a faster rate please.And i'm using The Map application present in mobile for getting the map functionality.
Here's the code i'm using

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)
  {
  }
 }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡莣 2024-12-03 15:59:11

GPS 需要时间才能修复。在实际对您的位置进行三角测量之前,它必须扫描大量频率。您编写的代码会在获得有效修复后启动 Google 地图。 (在 onLocationChanged()

上)您可以使用 地图视图。这样您的地图加载速度会更快,您甚至不必等待正确的修复。

GPS takes time to get a fix. It has to scan a lot of frequencies before it actually triangluates your position. The code that you have written launches Google Maps on getting a valid fix. ( on onLocationChanged() )

Instead you may use MapView. That way your map will be loaded much faster and you don't even have to wait for a proper fix.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文