相关疑难解决方法(0)

计算2个GPS坐标之间的距离

如何计算两个GPS坐标之间的距离(使用纬度和经度)?

math geometry geography geolocation latitude-longitude

344
推荐指数
16
解决办法
42万
查看次数

Google Maps API V3 - 最接近边界内的路线

我正在寻找位于路线边界内的地方.我想按照距路线的距离顺序返回结果.

我尝试rankby=distance了我的附近搜索请求,但它不起作用,因为它需要一个位置和半径,而我有一个LatLngBounds对象和一个路由.这甚至可能吗?

这是我的脚本沿着边界内的路线返回的位置.

http://jsfiddle.net/FMpBU/

它以随机顺序返回结果...

注意:目标是使用边界而不是位置.

javascript geolocation google-maps-api-3

3
推荐指数
1
解决办法
3411
查看次数

atan 在半正矢公式中是如何出现的?

我对此有点陌生。我最近准备将数学方程转换为代码。所以我开始练习简单的公式,例如斐波那契数和半正矢公式。

\n\n

但我对以下参考文献中的半正弦代码有点困惑;

\n\n\n\n

一般来说,他们所做的是,

\n\n
var R = 6371e3; // metres\nvar \xcf\x861 = lat1.toRadians();\nvar \xcf\x862 = lat2.toRadians();\nvar \xce\x94\xcf\x86 = (lat2-lat1).toRadians();\nvar \xce\x94\xce\xbb = (lon2-lon1).toRadians();\n\nvar a = Math.sin(\xce\x94\xcf\x86/2) * Math.sin(\xce\x94\xcf\x86/2) +\n        Math.cos(\xcf\x861) * Math.cos(\xcf\x862) *\n        Math.sin(\xce\x94\xce\xbb/2) * Math.sin(\xce\x94\xce\xbb/2);\nvar c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));\n\nvar d = R * c;\n
Run Code Online (Sandbox Code Playgroud)\n\n

我从这里得到了原始半正矢公式的参考。

\n\n

然后,注意这一行,

\n\n
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));\n
Run Code Online (Sandbox Code Playgroud)\n\n

它的哪一部分来自维基百科中的原始半正矢公式?我在这些图表上根本没有找到任何切线。我在这里错过了什么吗?任何建议表示赞赏。

\n

trigonometry haversine

3
推荐指数
1
解决办法
3152
查看次数

通过过滤按最接近的地理位置对数据进行排序

我正在尝试找到有人正在使用我的应用程序的正确建筑物。现在我已经设法进行了相当糟糕的过滤,我需要改进它。

我的目标是通过过滤将最近的建筑物返回给使用该应用程序的人,因此在同一建筑物中移动时尽可能好地过滤它,而不会产生错误。

我的 fetch 返回一个 api JSON 数组,如下所示:

{
"data": [
{
  "id": 1,
  "city": "CITY",
  "building_name": "Building 1",
  "building_address": "Address 123",
  "latitude":  "57.7052809",
  "longitude": "16.9367817"
},
{
  "id": 2,
  "city": "CITY",
  "building_name": "Building 2",
  "building_address": "Address 456",
  "latitude":  "35.7054509",
  "longitude": "16.9366141"
}
],
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码

fetch('http://localhost:8888/api/buildings')
.then(response => response.json())
.then(data => {

  userCoordinates = {
    latitude:  35.7053509,
    longitude: 16.9362301
  }


  const returnedBuilding = Object.entries(data.data).map(([inst, key]) => key)
  .filter(thing => (thing.latitude > userCoordinates.latitude - .5 &&
     thing.latitude < userCoordinates.latitude + …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

1
推荐指数
1
解决办法
6829
查看次数