Java 不显示所需的地图
当我运行应用程序时,我会得到世界地图,在那里你可以看到所有的国家。但这不是我想要的,我想要它显示我的国家或城市的地图作为一个例子。有办法做到这一点吗?这是到目前为止我的代码。我不认为这需要xml代码Java 不显示所需的地图,java,android,Java,Android,当我运行应用程序时,我会得到世界地图,在那里你可以看到所有的国家。但这不是我想要的,我想要它显示我的国家或城市的地图作为一个例子。有办法做到这一点吗?这是到目前为止我的代码。我不认为这需要xml代码 public class MainActivity extends Activity { private GoogleMap gMap; private LocationManager locationManager; private Location location,
public class MainActivity extends Activity {
private GoogleMap gMap;
private LocationManager locationManager;
private Location location, g;
private double lati, longi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
// gMap.setMyLocationEnabled(true);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
System.out.println("Last known location: " + location);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void showUsersPosition(View v) {
gMap.setMyLocationEnabled(true);
if(location != null) {
lati = location.getLatitude();
longi = location.getLongitude();
}
gMap.addMarker(new MarkerOptions().position(new LatLng(lati, longi)).title("You are here"));
}
}
我还添加了一个按钮,我想在单击该按钮时显示用户的位置。这在方法“showUsersPosition”中发生。但在这一点上,位置是空的,即使我试图在应用程序启动时设置它。有人知道为什么它是空的吗?当gMap.setMyLocation(true)被调用时,一个符号出现在右角,如果我点击它,它将显示我的位置。但是我想要它,这样当我点击按钮时它就会这样做
因此,问题再次是:
1.如何显示我的国家或城市地图,而不是世界地图?
2.为什么位置为空?
3.单击按钮时,如何使其显示我的确切位置
您可以在片段声明中使用它来设置默认的纬度和经度
map:cameraTargetLat="Your Latitude"
map:cameraTargetLng="Your Longitude"
不要忘记放置xmlns:map=”http://schemas.android.com/apk/res-auto“
如果片段不存在,则在片段上
2) 从:
如果提供程序当前已禁用,则返回null
GPS打开了吗?。另外,你应该使用新的
3) 您位置的准确性将取决于用于获取位置的提供商。使用新系统的一个优点是,系统将尽可能为您找到最佳位置。2)如果没有“lastKnowLocation”,是否可能是“lastKnowLocation”造成的?我得到的印象是,他可以使用地图中的按钮捕捉到您的位置,但最初它失败了,因为没有最后的位置?在文档上,它说如果关闭提供程序,它将返回null。我非常确定,对于“我的位置”按钮,谷歌使用了他们新的位置API,该API将根据给定的条件获得最佳位置(即,GPS是否打开?WiFi是否打开?我是否可以通过网络连接获得它?LastKNownLocation()是否是我的最佳选择?)。这一切都是由融合位置提供商完成的。感谢您的快速回复,这正是我所想的,但在位置处理方面总是存在特定于设备的奇怪之处。HTC我看着你!这样做:map:cameraTargetLat=“Your Latitude”需要我硬编码纬度和经度,这不是我想要的,因为用户可以在不同的区域。将xmlns:map=”“添加到我的片段不起作用,因为它显示为标记片段找到了“意外的名称空间前缀”xmlns。是的,我的GPS已打开,我正在使用wifi。我还尝试关闭Wifit。然后,你应该确保你获得了一个位置,并将相机设置到你想要的位置。