2014-04-25 152 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命令

相关问题