6

我是一个真正的谷歌地图 API 菜鸟,所以任何帮助表示赞赏。我想在这里看到的是,当我打开我的应用程序时,相机需要直接移动到我当前的位置并放置蓝点。我该如何做到这一点?

我制作了一个示例代码,以便每个人都可以理解它并在需要时实现他们的代码:

GoogleMap map = ((SupportMapFragment)  getSupportFragmentManager().findFragmentById(R.id.general_map)).getMap();
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);

if( helper.isGPSEnabled() ){
    map.move... // move directly to my current position
}

请帮忙...

4

2 回答 2

28

这就是我能够得到的工作。它显示您当前的位置并在那里放置一个标记。这适用于 Google Maps API v2

private void setUpMap() {
    // Enable MyLocation Layer of Google Map
    googleMap.setMyLocationEnabled(true);

    // Get LocationManager object from System Service LOCATION_SERVICE
    LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

    // Create a criteria object to retrieve provider
    Criteria criteria = new Criteria();

    // Get the name of the best provider
    String provider = locationManager.getBestProvider(criteria, true);

    // Get Current Location
    Location myLocation = locationManager.getLastKnownLocation(provider);

    //set map type
    googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);

    // Get latitude of the current location
    double latitude = myLocation.getLatitude();

    // Get longitude of the current location
    double longitude = myLocation.getLongitude();

    // Create a LatLng object for the current location
    LatLng latLng = new LatLng(latitude, longitude);      

    // Show the current location in Google Map        
    googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));

    // Zoom in the Google Map
    googleMap.animateCamera(CameraUpdateFactory.zoomTo(20));
    googleMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("You are here!"));
}
于 2013-04-22T15:10:12.043 回答
0

你需要首先确定用户他的位置。之后,您在地图上设置纬度和经度。另外不要忘记设置缩放级别以放大地图。

要确定是否启用了 gps:

如何确定 Android 设备的 GPS 是否已启用

Android - 有没有办法监听 GPS 是否启用或禁用

有关位置策略的更多信息:

http://developer.android.com/guide/topics/location/strategies.html

于 2013-01-21T15:21:38.020 回答