早上好。将公里添加到地图点
我想知道如何将公里添加到地图点(纬度/经度)。
例如:Jaraguádo Sul城市在纬度-26.462049,经度-49.059448。我想增加100公里上下,并在两侧。我想做一个广场,并获得新的点。
我该怎么做?
我试了一下:
<?php
$distance = 100;
$earthRadius = 6371;
$lat1 = -26.4853239150483;
$lon1 = -49.075927734375;
$bearing = 0;
$lat2 = asin(sin($lat1) * cos($distance/$earthRadius) + cos($lat1) * sin($distance/$earthRadius) * cos($bearing));
$lon2 = $lon1 + atan2(sin($bearing) * sin($distance/$earthRadius) * cos($lat1), cos($distance/$earthRadius) - sin($lat1) * sin($lat2));
echo 'LAT: ' . $lat2 . '<br >';
echo 'LNG: ' . $lon2;
?>
但它返回错误cordinates。谢谢!
非常感谢。
到目前为止的2个答案是一般的方法。但是,如果精度不重要,并且如果感兴趣的地理区域受到限制 - 特别是在狭窄的纬度范围内 - 则可以对这些函数进行拟合。我无法提供“乐队有多宽”和“多少不精确”的细节。 然后,如果地理范围有限,则可以创建一个查找表:-) – Smandoli 2010-04-19 15:41:17
如果您更详细地指定了您的应用,最终目标或工作工具,那么您可能会获得有关特定解决方案的新闻(例如, CoreLocation for iPhone) – Smandoli 2010-04-19 15:51:31
我正在创建一个PHP应用程序,并且在我的州(圣卡塔琳娜州)的每个城市都有一个数据库表(城市)。在这张表中,我有纬度/经度字段。 用户进入城市,我需要创建一个100km的虚构广场来找到他附近的企业。 对不起,我的英语和缺乏信息的抱歉。 谢谢你们! – proveyourselfthom 2010-04-19 16:09:12