Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不显示所需的地图_Java_Android - Fatal编程技术网

Java 不显示所需的地图

Java 不显示所需的地图,java,android,Java,Android,当我运行应用程序时,我会得到世界地图,在那里你可以看到所有的国家。但这不是我想要的,我想要它显示我的国家或城市的地图作为一个例子。有办法做到这一点吗?这是到目前为止我的代码。我不认为这需要xml代码 public class MainActivity extends Activity { private GoogleMap gMap; private LocationManager locationManager; private Location location,

当我运行应用程序时,我会得到世界地图,在那里你可以看到所有的国家。但这不是我想要的,我想要它显示我的国家或城市的地图作为一个例子。有办法做到这一点吗?这是到目前为止我的代码。我不认为这需要xml代码

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。然后,你应该确保你获得了一个位置,并将相机设置到你想要的位置。