我正在尝试获取用户位置,到目前为止我能够在地图上显示3个商店但是我无法找到我当前的位置,这是通过和模拟器完成的,我已经实现了LocationListener方法但似乎方法(onLocationChaged)永远不会被调用,在OnCreate方法中我已经指定了我的3个商店,它们在地图上显示得很好而不是我的当前位置,我甚至没有那个“raider / round icon”右上角带我到我现在的位置,我不确定我错过了什么。
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 :(得分:1)
答案 1 :(得分:1)
尝试以下代码: -
mapFragment = (SupportMapFragment) fragmentManager.findFragmentById(R.id.map);
map = mapFragment.getMap();
map . setMyLocationEnabled(true);
答案 2 :(得分:0)
在仿真器上进行测试时(即没有GPS芯片或网络位置),您必须启用模拟位置。在你的清单中有这个:
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
然后,您需要使用DDMS透视图中的模拟器控件视图或通过Telnet发送到模拟器,然后使用geo fix命令发送位置