【问题标题】:centering the camera in Google Maps V2在 Google Maps V2 中将相机居中
【发布时间】:2014-02-06 15:20:42
【问题描述】:

在我的 android 应用程序中,我有以下代码...

CameraUpdate center= CameraUpdateFactory.newLatLng(new LatLng(Lat,Lon));
DebugLog.debugLog("centered camera on " + Lat + " and " + Lon, false);
    CameraUpdate zoom=CameraUpdateFactory.zoomTo(15);
map.moveCamera(center);
    map.animateCamera(zoom);
map.addMarker(new MarkerOptions()
        .position(new LatLng(Lat, Lon))
        .title("Phone Location")
            );

纬度是 31.7898 朗是-111.0354

标记正好在正确的位置。然而,摄像机位于 v2 地图上该位置以北约 5 英里处。 为什么? 谢谢 加里

【问题讨论】:

  • 尝试在一个操作中同时进行居中和放大,而不是两个。
  • 只是为了展示如何做到这一点的例子:map.animateCamera(CameraUpdateFactory.newLatLngZoom(location, 15));

标签: android google-maps google-maps-android-api-2


【解决方案1】:

在阅读了一些其他文档后,我发现以下代码有效...

    CameraPosition cameraPosition = new CameraPosition.Builder()
        .target(new LatLng(Lat, Lon))
        .zoom(15)
        .bearing(0)
        .tilt(45)
        .build();
    map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
    map.addMarker(new MarkerOptions()
    .position(new LatLng(Lat, Lon))
    .title("Phone Location")
        );  

我认为我的原始代码也应该可以工作。 加里

【讨论】:

    【解决方案2】:

    保持视角不变,但将摄像头置于当前点击的标记处:

        obj_map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker arg0) {
            CameraPosition obj_cam = new CameraPosition.Builder()
                    .target(new LatLng(arg0.getPosition().latitude, arg0.getPosition().longitude))
                    .zoom(obj_map.getCameraPosition().zoom)
                    .tilt(obj_map.getCameraPosition().tilt)
                    .bearing(obj_map.getCameraPosition().bearing)
                    .build();
            obj_map.animateCamera(CameraUpdateFactory.newCameraPosition(obj_cam));
            return true;
        }
    

    【讨论】:

    • 您可以通过将 obj_map.getCameraPosition() 传递给 Builder 构造函数来简化此操作。使用现有目标、缩放、倾斜和方位初始化 Builder:CameraPosition obj_cam = new CameraPosition.Builder(obj_map.getCameraPosition())
    猜你喜欢
    • 1970-01-01
    • 2013-03-22
    • 2015-03-13
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    相关资源
    最近更新 更多