作为背景...我正在使用Android Google Map v2开发本机 Android 应用程序。我的要求如下:
要求 #1:显示由两个 LatLng 限定的特定地理区域的卫星图像。请注意,这些 LatLng 代表我要显示的矩形地图区域的“中心线端点”(与地图区域的东北角和东南角相反)。为清楚起见,我要显示的地图区域是高尔夫球场上的一个洞,我拥有的两个 LatLngs 代表特定高尔夫球洞的 Tee 位置和 Pin/hole 位置。
这没有问题......这部分的解决方案似乎很简单。我使用以下代码来显示具有适当边界的地图:
public void onCameraChange(CameraPosition arg0) {
// Determine the bounds and then move camera
LatLngBounds bounds = new LatLngBounds.Builder()
.include(TPS_PIN)
.include(TPS_HOLE)
.build();
googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 10));
要求#2:旋转地图图像,以便在纵向模式下,Tee 位置位于手机屏幕底部,而 Pin/hole 位置位于手机屏幕顶部。
虽然有一种方法可以旋转地图图像(CameraPosition.Builder 使用它的“轴承”参数),但显然你不能将它与 LatLngBounds 方法(如上所述)结合使用来实现我的目标(绑定和旋转地图图像)。还有另一个 StackOverflow 帖子(Android maps V2 newLatLngBounds with bearing),作者有类似的目标,但不幸的是,提供的答案并没有解决问题。但是,如果响应者建议的答案不起作用(并且不起作用),则响应者建议采用以下方法:
“您可能需要自己计算目标并使用投影进行缩放,因此您可以将边界设置为上面第一个 moveCamera() 调用的一部分。”
不幸的是,没有提供更多细节。我看过投影,但看不到实现目标的方法。
有没有人看到实现我的目标的方法(绑定和旋转)?也许有一种方法可以使用投影来做到这一点?请记住,我只有两个 LatLng 点可供我使用(Tee 位置的 LatLng 和 Pin/孔位置)。我需要确保整个孔都适合屏幕。
正如我上面提到的,我需要确定如何旋转图像,以便当手机处于 Potrait 模式时,Tee 位于手机屏幕的底部,而 Hole/Pin 位置位于屏幕的顶部。再次需要确保整个孔(三通和销/孔)适合屏幕。有没有办法将一个特定的 LatLng “固定”到屏幕底部,将另一个 LatLng “固定”到手机屏幕的顶部?
重申一下,我需要一个适用于 Android Maps v2 api 的解决方案。
任何建议将不胜感激......即使它们是高级“定向”建议。这就是说希望“定向”建议将有足够的细节让我连接点。