繁体   English   中英

将相机重定向到当前位置Google Maps API v2

Redirect camera to current position Google Maps API v2

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试将相机移到当前位置,我尝试过的事情是:

我的onCreateView看起来像:

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View inflatedView = inflater.inflate(R.layout.fragment_photos, container, false);

        try {
            MapsInitializer.initialize(getActivity());
        } catch (Exception e) {
            // TODO handle this situation
        }

        mMapView = (MapView) inflatedView.findViewById(R.id.mapView);
        mMapView.onCreate(mBundle);


        setUpMapIfNeeded(inflatedView);

        return inflatedView;
    }

我的onCreate看起来像:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mBundle = savedInstanceState;
}

而且我有一个名为setUpMapIfNeeded的方法可以扩大视图的大小...我尝试过的事情是使用mMap.getMyLocation()创建一个Location,然后创建两个double latlng ,它们分别是= location.getLatitude and Longitude ,我尝试使用我的位置创建一个cameraZoomIn,但是它不起作用。

private void setUpMapIfNeeded(View inflatedView) {
    if (mMap == null) {
        mMap = ((MapView) inflatedView.findViewById(R.id.mapView)).getMap();
        mMap.getUiSettings().setMyLocationButtonEnabled(true);
        mMap.setMyLocationEnabled(true);

        Location location = mMap.getMyLocation();
        double lat =  location.getLatitude();
        double lng = location.getLongitude();
        CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(location, 10);
        mMap.animateCamera(cameraUpdate);

        if (mMap != null) {
            setUpMap();
        }
    }
}

setUpMap方法

    private void setUpMap() {
        mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("PewPew"));
        // latitude and longitude
        double latitude = 17.385044;
        double longitude = 78.486671;

// create marker
        MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Pew Pew");

// Changing marker icon
        marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher));

// adding marker
        mMap.addMarker(marker);

    }

希望您能帮助您解决此问题。

谢谢。

2 个回复

不推荐使用GoogleMap.getLocation,您应该使用位置服务:

LocationManager mng = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = mng.getLastKnownLocation(mng.getBestProvider(new Criteria(), false));

double lat = location.getLatitude();
double lon = location.getLongitude();

CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lon), 10);
mMap.animateCamera(cameraUpdate);

这就是我缩放的方式

LatLng a = new LatLng(gps.getLatitude(), gps.getLongitude());
map.animateCamera(CameraUpdateFactory.newLatLngZoom(a, 10));

希望对您有所帮助。

2 在 google_maps_flutter 中获取相机当前位置的问题

我是 Flutter 的新手,遇到了 google maps 插件的问题。 我看了几个教程以获得相机的当前位置,其中大部分使用GoogleMapController.cameraPosition.target 。 我认为他们从控制器中删除了这个方法(因为它仍处于开发阶段)。 有没有其他方法可以获取相 ...

5 使用API​​ V2和mapfragment的Google地图

我正在做有关本教程的内容:使用API​​ V2和SupportMapFragment在Google Maps中显示当前位置 我仔细地遵循了这些步骤,但是最后没有出现地图,只有带有经度和纬度的灰色屏幕。 http://wptrafficanalyzer.in/blog/showing- ...

6 google-maps-api-v3 getProjection

我正在使用Google Maps投影方法来计算两个纬度和经度之间的距离。 var projection = this.overlay.getProjection(); var投影仅在用户停止移动(拖动)或放大和缩小地图时提供结果。 但是它在空闲时不起作用。 假设地图已初始 ...

10 无法使用API​​ v2水平滚动Google地图

我正在开发一个集成了Google map API v2的应用程序。 我在运行时使用HorizontalScrollView添加了一个滑动菜单。 问题是,当我尝试水平滚动HorizontalScrollView时,我只能垂直滚动地图。 这就是我进行布局的方式。 View main ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM