Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用当前位置和目的地位置的纬度和经度,我们如何在iphone中获得方向_Iphone_Google Maps_Direction - Fatal编程技术网

使用当前位置和目的地位置的纬度和经度,我们如何在iphone中获得方向

使用当前位置和目的地位置的纬度和经度,我们如何在iphone中获得方向,iphone,google-maps,direction,Iphone,Google Maps,Direction,我在一个iphone应用程序中工作,我们需要显示从一个地方到另一个地方的方向 即从目的地所在方向(N或E或W或S或NE或NW或SE或SW)的当前位置。 我知道如何获得从一个地方到另一个地方的方向,但我正在寻找显示方向。 我的问题清楚了吗?如果有人知道怎么做,请帮帮我 谢谢大家 看看苹果公司的磁强计/磁芯位置样本:你知道这两个位置的坐标吗 看看: 纬度 以度为单位的纬度。正值表示赤道以北的纬度。负值表示赤道以南的纬度 经度 以度为单位的经度。测量值与零子午线相关,正值延伸至子午线以东,负值延伸至子

我在一个iphone应用程序中工作,我们需要显示从一个地方到另一个地方的方向 即从目的地所在方向(N或E或W或S或NE或NW或SE或SW)的当前位置。 我知道如何获得从一个地方到另一个地方的方向,但我正在寻找显示方向。 我的问题清楚了吗?如果有人知道怎么做,请帮帮我
谢谢大家

看看苹果公司的磁强计/磁芯位置样本:

你知道这两个位置的坐标吗

看看:

纬度 以度为单位的纬度。正值表示赤道以北的纬度。负值表示赤道以南的纬度

经度 以度为单位的经度。测量值与零子午线相关,正值延伸至子午线以东,负值延伸至子午线以西

因此,纬度非常简单,如果目的地的纬度小于当前位置的纬度,则它位于北方,如果它大于当前位置的纬度,则它位于南方

纬度距离=目的地.纬度-起点.纬度

经度稍微复杂一些,因为你应该考虑到地球东边的三个目的地可能更好地表示为西方。再次比较经度值,考虑东西方的距离,处理经络,选择较短的距离。< /P>
distance\u east=(origin.longitude>0&&destination.longitude<0)?180-origin.longitude+destination.longitude--180:destination.longitude-origin.longitude;如果(东距<0)东距+=360

distance\u west=(origin.longitude<0&&destination.longitude>0)-180-origin.longitude-180-destination.longitude:origin.longitude-destination.longitude;如果(距离西<0)距离西+=360

纵向距离=最小值(东距、西距)

一旦你知道两个点之间有多少纬度和经度,你就可以计算到目的地的航向,并决定哪个航向应该显示为哪个罗盘点。在只有四个点(N、E、S、W)的罗盘上,每个点都可以覆盖90度。在有8个点的罗盘上,每个点可以覆盖45度。希望你能明白

heading=arctan(纵向距离/纬度距离)
if(标题>=-45 | |标题<45)返回'N';否则,如果(标题>=45和标题<135)返回“E”;否则,如果…


现在已经很晚了,我不会测试这些表达式,所以如果它们看起来有用,请确保您理解并测试它们,而不是盲目地应用它们。不幸的是,我调换符号或坐标对的几率很高。

操作员想知道地图上两点之间的方向,你建议看指南针。这是两件完全不同的事情。谢谢BojanG,谷歌地图api不可能吗?@Joe Blow-不画箭头输出应该像Diatance:1km northwest,我发现距离搜索方向是的,我想要像N或E或W或S或NE或NW或SE或SWHi Jonah这样的答案,谢谢你的回答和回答,我已经尝试了代码并使用了我写的标题值,如下所示:如果(标题>=-45 | |标题<0)返回@“北”;否则,如果(航向>=0&&航向<45)返回@“东”;否则,如果(航向>=45&&航向<90)返回@“南”;否则,如果(航向>=90&&航向=135&&航向<180)返回@“东北”;否则,如果(航向>=180 | |航向<225)返回@“西北”;否则,如果(品目>=225和品目<270)返回@“东南”;否则,如果(航向>=270&&航向<315)返回@“西南”;这对吗?你试过了吗?您似乎假设标题的范围为0到360,这与我在示例中所做的假设不匹配。看看这些值是如何计算的,并考虑可能的输出是什么。是的,我假设你说。这不对吗?你能告诉我该怎么做吗?如果你还有具体问题,我会尽力帮助你,但我想我已经给了你解决这个问题所需要的一切。是的,但我想我的代码是错的。。我理解你的答案,因为我们应该用0到360来检查方向。你能帮我看看上面的代码吗谢谢