War*_*lax 45 android google-maps-android-api-2
我相信这是最近的Google Maps API v2的限制.他们最近添加了在地面上绘制圆圈的功能 - 但是如果你想要将摄像机定位为显示整个圆圈,则无法这样做.
可以调用CameraUpdateFactory#newLatLngBounds(bounds,padding),其中"bounds"是LatLngBounds,"padding"是以像素为单位的距离.问题是无法在LatLngBounds中创建LatLng和半径.
LatLngBounds的构造函数只接受2个LatLng实例并生成一个矩形,其中这些是NW和SE角.
Bar*_*ski 105
就像Risadinha提到的那样,你可以轻松实现这一目标android-maps-utils.只需添加:
compile 'com.google.maps.android:android-maps-utils:0.4.4'
Run Code Online (Sandbox Code Playgroud)
对于您的gradle依赖项,请使用以下代码:
public LatLngBounds toBounds(LatLng center, double radiusInMeters) {
double distanceFromCenterToCorner = radiusInMeters * Math.sqrt(2.0);
LatLng southwestCorner =
SphericalUtil.computeOffset(center, distanceFromCenterToCorner, 225.0);
LatLng northeastCorner =
SphericalUtil.computeOffset(center, distanceFromCenterToCorner, 45.0);
return new LatLngBounds(southwestCorner, northeastCorner);
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我们的目标是计算两个点(LatLngs):southwestCorner和northeastCorner.从javadoc中SphericalUtil你可以读到225并且45是heading值,而且distanceFromCenterToCorner是distance.进一步说明下图中的值:
小智 13
使用javascript库,您可以绘制一个具有中心和半径的圆,然后获取其边界.
centerSfo = new google.maps.LatLng(37.7749295, -122.41941550000001);
circle = new google.maps.Circle({radius: 5000, center: centerSfo});
bounds = circle.getBounds();
Run Code Online (Sandbox Code Playgroud)
你可以使用android api做同样的事情.
Chr*_*rry 11
这是完全可行的.
LatLng是你圈子的中心吗?你想要做的是将你的圆圈刻在LatLngBounds(Square of a Square问题)里面,这样整个东西就会显示在地图上.
如果你在纸上画这个,你可以看到你拥有计算你所需要的一切LatLngBounds.
还记得如何找到直角三角形边长吗?
a² + b² = c²
Run Code Online (Sandbox Code Playgroud)
如果从圆的中心到NW(左上角)绘制一条直线,另一条直线连接到正方形的西墙(从中心到左边的直线),则会有一个三角形.现在您可以使用上面的等式求解,c因为您知道三角形另一边的长度(圆的半径).
所以现在你的等式变成了
r² + r² = c²
Run Code Online (Sandbox Code Playgroud)
减少到
2r²=c²
这进一步减少到
c = squareRoot(2)*r
现在你有距离.这当然是过于简单化,因为地球并不平坦.如果距离不是很大,您可以使用上面相同的等式,但修改为将球形地球投射到平面上:
http://en.wikipedia.org/wiki/Geographical_distance#Flat-surface_formulae
请注意,这也使用了毕达哥拉斯定理,与上面的相同.
接下来,您将需要从给定轴承的中心点计算您的终点(NW和SE角),以及您在上面找到的距离.

这篇文章可能有所帮助:计算终点给定距离,方位,起点
使用上面链接的方程式时,不要忘记将度数转换为弧度!(乘以度pi/180)
| 归档时间: |
|
| 查看次数: |
25952 次 |
| 最近记录: |