当前位置: 首页 > 知识库问答 >
问题:

如何连接相机更新动画

百里飞捷
2023-03-14

我想运行一个camaUpdateFactory.newLatLngBound动画,文档声明:

返回一个CameraUpdate,用于变换相机,使指定的纬度/经度边界以最大可能的缩放级别在指定尺寸的边界框内的屏幕上居中。可以指定其他填充,以进一步限制边界框的大小。返回的CameraUpdate的方位角为0,倾斜角为0。

但我不想让它在屏幕上居中,我想把焦点区域向上移动,想象一个“align\u parent\u top”。所以我有一个摄像头更新工厂。通过滚动来实现它。

CameraUpdate move = CameraUpdateFactory.newLatLngBounds(
            builder.build(), 
            getUtils().getScreenAbsoluteWith(), 
            mAvailableHeight,
            mDefaultMapPadding);

CameraUpdate scroll = CameraUpdateFactory.scrollBy(0,mAvailableHeight + mDefaultMapPadding));

然后:

mMap.animateCamera(move, new GoogleMap.CancelableCallback() {
            @Override
            public void onFinish() {
                mMap.animateCamera(scroll);

            @Override
            public void onCancel() {}
});

不幸的是,我真正想要的是同时运行这两个动画。或者,以某种方式创建一个CameraUpdateFactory。newLatLngBounds不会在屏幕上居中显示。

有什么想法吗?谢谢

共有1个答案

包德业
2023-03-14

只需将Lat/Lng边界转换为屏幕像素,然后添加像素,然后将像素转换为Lat\Lng back:

...
private GoogleMap mGoogleMap;
...

// convert LatLng bounds to screen coords
Point pointNortheast = projection.toScreenLocation(latLngBounds.northeast);
Point pointSouthwest = projection.toScreenLocation(latLngBounds.southwest);

// modify bounds in screen coords
pointNortheast.y += scrollByPixel;
pointSouthwest.y += scrollByPixel;

// convert screen coords back to LatLng
LatLng geoNortheast = projection.fromScreenLocation(pointNortheast);
LatLng geoSouthwest = projection.fromScreenLocation(pointSouthwest);
LatLngBounds modifiedBounds = new LatLngBounds(geoSouthwest, geoNortheast);

// animate camera to new bounds
mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(modifiedBounds, 0));
...
 类似资料:
  • 下面是我到目前为止的代码: 有人能解释一下在和情况下我该做什么吗?以及如何知道网络已断开并重新连接?

  • 服务器上有NiFi和NiFi-Registry,没有连接,我不能通过本地NiFi实例连接到NiFi-Registry,但我可以通过远程桌面访问NiFi和NiFi-Registry。 另一个版本的NiFi和NiFi-Registry安装在我的本地开发系统上。有没有办法离线更新(同步)远程NIFI-注册表流并将新的更新应用到远程NIFI?

  • 我正在使用Camera2 API创建自定义相机。我想在使用相机预览保存图像后重新打开相机(继续拍摄图像)。我试图在保存图像后重新打开相机,但显示错误。 android.view.ViewRootImpl$CalledFromWrongThread异常:只有创建视图层次结构的原始线程可以触摸其视图。 开放式摄像法 重新打开相机方法 捕获会话 保存图像方法

  • 问题:当我的spring应用程序运行时,同时数据库服务器停止/重新启动,然后db连接丢失并且从未恢复。 com.mysql.jdbc.exceptions.jdbc4.mysqlnontransientConnectionException:连接关闭后不允许任何操作。 服务mysql启动 问题:如何告诉spring在连接丢失后自动重新连接? 这是我的配置:

  • 接口说明 更新相机位置(坐标) 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/viewpoint/1.0.0/update 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 id string form 是 视角ID dId string form 是 场景ID directionx number f

  • 问题内容: 我将相机设置为,并且可以正常工作,但是如果将其更改为而不是它,则会崩溃并显示以下错误… 它崩溃的方法是.. 崩溃于 我的清单文件有 如何解决此问题,以便可以在Portrait中查看我的应用程序? 问题答案: 供您参考,这是我在应用程序中使用的SurfaceHolderCallBack内部类,该类在纵向模式下的Nexus One 2.2上运行良好- 希望对您有所帮助。 编辑:“这有效”