2011-07-27 227 views
-1

我的應用程序包含獲取我當前位置座標的活動,然後顯示到達給定座標的目的地的路線。問題是加載地圖並獲取路線需要幾小時。如果任何人都可以建議我如何以更快的速度完成它。而且我正在使用移動設備中的地圖應用程序獲取地圖功能。 下面是我使用的代碼加載非常緩慢的地圖

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

你最近怎麼樣?我認爲,如果您使用具有良好互聯網連接的MapView,它應該只需要幾秒鐘。 – Reno

+0

嗨Reno,我使用內置的地圖應用程序來繪製地圖。 – amithotu

+0

請參閱代碼並告訴我爲什麼啓動需要這麼長時間? – amithotu

回答

0

GPS需要時間才能得到修復。它在實際影響你的位置之前必須掃描很多頻率。您編寫的代碼啓動Google地圖以獲取有效的修復程序。 (在onLocationChanged()

相反,您可以使用MapView。這樣你的地圖加載速度就會快得多,你甚至不必等待適當的修復。

+0

謝謝。相同的代碼在HTC Hero上運行良好,並且不適用於HTC Wildfire。可以向我推薦任何有關此問題的信息嗎? – amithotu

+0

請問您可以告訴我如何實施MAPView代替上述代碼。 – amithotu

+0

如果您沒有注意到,在答案中有指向教程的鏈接。 – Reno