【发布时间】:2013-04-15 00:54:43
【问题描述】:
作为背景...我正在使用 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 位于手机屏幕底部,而孔/针位置位于屏幕顶部。再次需要确保整个孔(三通和销/孔)适合屏幕。有没有办法将一个特定的 LatLng “固定”到屏幕底部,将另一个 LatLng 固定到手机屏幕的顶部?
重申一下,我需要一个适用于 Android Maps v2 api 的解决方案。
任何建议都将不胜感激......即使它们是高级“定向”建议。这就是说希望“定向”建议将有足够的细节让我连接点。
【问题讨论】:
标签: android-maps-v2