gpt4 book ai didi

javascript - 使用谷歌地图在给定纬度的情况下将海里转换为经度

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:06:06 24 4
gpt4 key购买 nike

我想明确定义一个 Google map LatLngBounds对象位于 LatLong 右侧 x 海里处P 和 P 左侧 x 海里。并将 LatLngBounds 定义为点 P 上方 y 海里和 P 下方 y 海里。

所以基本上我想使用纬度和经度定义 LatLngBounds,并且我想从 x、y 和 P 获取纬度和经度。

纬度可以轻松转换为经度:1 度等于一海里。但是
每纳米经度随纬度变化。公式是(在 php 中)

public static function degPerNmAtLat($lat) {
$pi80 = M_PI / 180;
$lat = $lat*$pi80; //convert lat to radians
$p1 = 111412.84; // longitude calculation term 1
$p2 = -93.5; // longitude calculation term 2
$p3 = 0.118; // longitude calculation term 3
// below: calculate the length of a degree of latitude and longitude in meters
$longlen = ($p1 * cos($lat)) + ($p2 * cos(3 * $lat)) + ($p3 * cos(5 * $lat));
$longlen = $longlen * (3.280833333) / (5280 * 1.15077945); // convert to nautical miles
return 1/$longlen;
}

但这似乎是一项常见的任务,我想知道 Google map 是否具有我所缺少的可以完成此任务的功能。是否有原生的 Google map 方法可以在不使用上述公式的情况下从 x、y 和 P 创建我的 LatLngBounds 对象?

最佳答案

你可以使用 computeOffset() Google Maps API V3 geometry library 中的函数:

var dist = nauticalMiles * 1852; // convert nm to meters
var point = new google.maps.LatLng(lat,lng);
var eastPoint = google.maps.geometry.spherical.computeOffset(point,dist,90.0);
var westPoint = google.maps.geometry.spherical.computeOffset(point,dist,270.0);

关于javascript - 使用谷歌地图在给定纬度的情况下将海里转换为经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7825415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com