2014-04-25 74 views
-1

我正在嘗試獲取用戶位置,到目前爲止,我可以獲得地圖上顯示的3個商店,但是我無法找到我目前的位置,這是通過和模擬器,我已經實現了LocationListener方法,但它看起來像方法(onLocationChaged)永遠不會被調用,在OnCreate方法中,我已經指定了我的3個商店,它在地圖上很好地顯示,但不是我的當前位置,我甚至沒有右上角的「raider/round icon」將我帶到目前的位置,我不確定我錯過了什麼。GOOGLE MAPS V2 - 獲取當前用戶位置

Java代碼:

public class LocateStore extends FragmentActivity implements LocationListener{ 

static final LatLng ARCADIA = new LatLng(-25.746318, 28.221322999999984); 
static final LatLng HATFIELD = new LatLng(-25.7487333, 28.238043199999993); 
static final LatLng CENTURION = new LatLng(-25.8602778, 28.189444399999957); 
private GoogleMap map; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_locate_store); 

    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this); 


    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 
    map.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 

     Marker aracdia = map.addMarker(new MarkerOptions().position(ARCADIA).title("Arcadia").icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_small))); 
     Marker hatfield = map.addMarker(new MarkerOptions().position(HATFIELD).title("Hatfield").icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_small))); 
     Marker centurion = map.addMarker(new MarkerOptions().position(CENTURION).title("Centurion").icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_small))); 
     } 

    @Override 
    public void onLocationChanged(Location location) { 
     // TODO Auto-generated method stub 

     map.clear(); 

     MarkerOptions mp = new MarkerOptions(); 

     mp.position(new LatLng(location.getLatitude(), location.getLongitude())); 

     mp.title("my position"); 

     map.addMarker(mp); 

     map.animateCamera(CameraUpdateFactory.newLatLngZoom(
     new LatLng(location.getLatitude(), location.getLongitude()), 16)); 

    } 

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

    } 

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

    } 

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

    } 
} 
+0

當你打開地圖你沒有看到一個藍色的圓圈顯示你的位置? – erdomester

回答

1
+0

好的,即時通過地理定位發送GPS命令通過telnet到端口5554本地主機和按鈕帶我到收到的座標。太感謝了。 – TwoStarII

+0

這在OnCreate中工作,我如何使它在OnLocationChange中工作,因爲我現在看到一個小的藍色圓圈,但沒有在onLocationChanged方法中定義的標題位置? – TwoStarII

1

試試下面的代碼: -

 mapFragment   = (SupportMapFragment) fragmentManager.findFragmentById(R.id.map); 
     map     = mapFragment.getMap(); 

     map     . setMyLocationEnabled(true); 
+0

除了代碼外,您應該提供一些解釋。 – Thom

0

當在模擬器上測試(即沒有GPS芯片或網絡位置),你有啓用模擬位置。有這個在你的清單:

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 

然後,您需要使用仿真器控制視圖在DDMS角度或通過遠程登錄到仿真器發送的位置,然後用地理fix命令

相關問題