作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试计算从屏幕/ map (显示)中间到屏幕顶部的距离。我有某种算法可以执行此操作,但我不确定它是否正常工作。我收到 6367 及以上的数字。这是我的算法:
double Radius = 6367.45;
LatLngBounds bounds = map.getProjection().getVisibleRegion().latLngBounds;
LatLng center = bounds.getCenter();
LatLng north = bounds.northeast;
// Convert lat or lng from decimal degrees into radians (divide by 57.2958)
double centerLat = center.latitude / 57.2958;
double centerLong = center.longitude / 57.2958;
double northLat = north.latitude / 57.2958;
double northLong = north.longitude / 57.2958;
// distance = circle radius from center to top of the screen
// this I ma not sure if it returns true numbers like amm real distance
// and I call it in the setOnCameraChangeListener on every zoom right?
// yes
boundRadius = Radius*(Math.acos(Math.sin(centerLat) * Math.sin(northLat) + Math.cos(centerLat)*Math.cos(northLat)*Math.cos(northLong - centerLong)));
我计算正确吗?如果不是,我做错了什么?
最佳答案
你可以只使用distanceBetween()
(documentation) .我相信它考虑了地球的曲率。
关于安卓谷歌地图 : How to calculate the distance between the middle of the screen/map and the top of the screen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31046951/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!