【问题标题】:How to get the directions north/south/east/west with google maps api?如何使用谷歌地图 api 获取北/南/东/西方向?
【发布时间】:2017-12-14 11:52:12
【问题描述】:

例如,我有 5 个标记,我想根据主要标记(中间的红色)获取每个标记的方向(E、W、NE 等)。这是一张照片。有没有办法用 google.maps.DirectionsService 做到这一点或以某种方式计算它? 谢谢。

更新:这是我得到的:

m.position.lng() - c.position.lng()
m.position.lat() - c.position.lat()

【问题讨论】:

    标签: google-maps google-maps-api-3 google-maps-markers


    【解决方案1】:

    让我给出这个想法。
    您可以使用slope。假设您有一个标记 M1 和中心标记 C
    Slope 应该等于 (C.lat - C.lng)/(M1.lat - M1.lng)
    如果斜率恰好接近 0,则它可以是东或西,如果 M1.lng > C.lng它应该是西。
    如果坡度接近 1,则它是西南或东北。然后,如果M1.lng > C.lng 是西南
    如果坡度接近-1,那么它要么是西北要么是东南。然后我M1.lng > C.lng,它是西北。
    您可以对其他方向使用相同的方法

    【讨论】:

    • 感谢您的回答。我可以在哪里阅读更多相关信息?因为我不明白如何将这种方法用于其他方向。我可以获得东西方向的 M1.lng > C.lng,但是如果我尝试使用 (C.lat - C.lng)/(M1.lat - M1.lng) 我会得到一些 01 是某种对角线
    • 实际上,我是在您询问后想出的解决方案。看不懂的可以问我
    • 那么,中间方向有问题吗?
    • 我的答案有一些错误,让我修正一下,我会在其中更详细地解释
    • 我更新了我的问题。我想我可以通过 m.position.lng() - c.position.lng() 和 m.position.lat() - c.position.lat() 获得 NE、NW、SW、SE 方向
    【解决方案2】:

    假设我们要找到从 A 点到 B 点的基本方向:

    if (A.lat > B.lat){
       NS = "S"
    } else {
       NS = "N"
    }
    
    if (A.lng > B.lng){
       EW = "W"
    } else {
       EW = "E"
    }
    
    cardinal_direction = NS + EW
    

    可能的cardinal_direction 值为:SW、SE、NW、NE

    【讨论】:

      猜你喜欢
      • 2018-01-26
      • 1970-01-01
      • 2015-08-19
      • 2013-02-24
      • 2021-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多