【发布时间】:2017-01-16 02:28:42
【问题描述】:
我想 zoom Google map 根据我在 android 中的情况以英里为单位的特定半径,例如 10 英里/20 英里/30 英里等。
我需要的是从当前的经纬度点绘制一个特定半径(10/20/30.. 英里)的圆,然后将地图缩放到我绘制半径圆的特定英里处。
我可以指出我当前的位置,画圆。但我无法仅将地图缩放到所需的半径英里(圆圈应以我当前位置为中心以指定英里为中心聚焦在屏幕上)。
目前我正在使用以下代码进行缩放:
gooMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(selectedLat, selectedLong), 15));
gooMap.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
Log.e("Circle Lat Long:", selectedLat + ", " + selectedLong);
circle.remove();
circle = gooMap.addCircle(new CircleOptions()
.center(new LatLng(selectedLat, selectedLong))
.radius(iMiles * 1609.34) // Converting Miles into Meters...
.strokeColor(Color.RED)
.strokeWidth(5));
circle.isVisible();
我知道将缩放级别设置为 15 不会将地图缩放到所需的英里数。但我需要缩放地图以期望英里半径。我怎样才能实现它。任何人都可以帮助我。 编辑:- 添加的图片详细说明了我需要的内容。 Image_1:- 当我将半径设置为 10 英里时,地图应如图所示缩放。 Image_2 当我将半径设置为 50 英里时,地图应如图所示缩放。 请查看地图位置的差异以分析我需要的缩放级别。 提前致谢。
【问题讨论】:
-
您所说的“放大到想要的(原文如此)英里半径”是什么意思?缩放是一个无量纲单位。你的意思是你想让圆圈填满屏幕,或者说是屏幕高度的 50%?就目前而言,这个问题毫无意义。
-
@NickT 我需要缩放屏幕时应该只在屏幕上显示圆圈。
-
我再次问 - 你想要多大的圈子?填充屏幕高度?填充屏幕宽度?占据半个屏幕?
-
@NickT 我正在绘制半径为某些指定英里的圆,例如 10 英里。现在我想在地图缩放时只在屏幕上显示圆形边缘或周长。如果我将英里数增加到 40 英里,则再次以 40 英里的半径绘制圆圈,我再次需要将地图缩放到我的圆圈边缘再次显示在屏幕上的范围。不多也不少。
-
@NickT 我已经用更多细节编辑了这个问题。请看看
标签: android google-maps google-maps-api-3 android-maps-v2 android-maps