我正在使用Google Places API获取地理位置附近的机构列表,我正在尝试弄清楚如何向北移动1公里并在那里获取地理坐标,然后再进行另一次Google API调用。
理想情况下,我希望能够进入任何距离的任何方向并获得地理坐标。我从哪里开始?如果无法做到,请告诉我。
我没有得到任何东西。请看一看。我究竟如何使用方向。我怎么去北方?
$lat = "40.712714";
$lon = "-74.005997";
$direction = "80";
$length="2000";
move($lon, $lat, $direction, $length);
function move($cx,$cy,$direction,$length){
$x=$cx*cos($direction*M_PI/180)+$length;
$y=$cy*sin($direction*M_PI/180)+$length;
return array($x,$y);
echo $x;
echo $y;
}
EDIT 我只是尝试手动更改坐标编号,它似乎做我想要的。 例如,我采用这些坐标
40.717828,-73.998672
并更改了第3个十进制数。这使我的位置向北移动。
40.710828,-73.998672
答案 0 :(得分:1)
所以我进行了一些调查。这是此功能的更正代码:
function move($ylat,$xlng,$direction_degree,$length_degree){
$x=$xlng+$length_degree*cos($direction_degree*M_PI/180);
$y=$ylat+$length_degree*sin($direction_degree*M_PI/180);
return array($x,$y);
}
var_dump(move(52.1,11.2,0,1)); //North 1 degree.
但是,在您可以按照自己的意愿使用之前,还有一些小问题需要解决。
答案 1 :(得分:0)
引用此维基百科文章GCS Wiki Article:
在赤道海平面上的GRS80或WGS84球体上,一个 纬度第二测量30.715米,一个纬度分钟 1843米,纬度为110.6公里。该 经度圈,经络圈,在地理极点相遇,有 第二个东西宽度自然减少为纬度 增加。在海平面上的赤道,一个纵向的第二个 措施30.92米,纵向分钟1855米和一个 纵向度为111.3公里。纵向为30° 距格林威治(北纬51°28'38“)19.22米,距离60° 它是15.42米。