javascript - 局部坐标系与经纬度的逆
问题描述
我有一个功能可以将纬度和经度转换为 localCordinateSystem
const EARTH_RADIUS_KM = 6371.0;
const distanceInMeters = (lat1, lon1, lat2, lon2) => {
const lonDiff = toRadians(lon2 - lon1);
const latDiff = toRadians(lat2 - lat1);
const a = Math.pow(Math.sin(latDiff / 2), 2) + Math.cos(toRadians(lat1)) *
Math.cos(toRadians(lat2)) * Math.pow(Math.sin(lonDiff / 2), 2);
const angle = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return angle * EARTH_RADIUS_KM * 1000.0;
};
const localCoordinateSystem = (lat, lon, originLat, originLon, radius) => {
let latDist = distanceInMeters(originLat, originLon, lat, originLon);
let lonDist = distanceInMeters(originLat, originLon, originLat, lon);
if (lat < originLat) latDist *= -1;
if (lon < originLon) lonDist *= -1;
return {
x: parseFloat(latDist) + parseFloat(radius),
y: parseFloat(lonDist) + parseFloat(radius),
};
};
如果您看到函数 localCoordinateSystem 采用 lat、lon、originLat、originLon 和 radius 并返回 x 和 y。
但现在我想要一个接受 x、y、originLat、originLon 和 radius 并返回 lat 和 lon 的函数。
解决方案
推荐阅读
- c++ - 为什么会出现垃圾值?
- google-maps - 将 google markerclusterer plus 实现到模板 web 组件中
- python - 如何删除没有索引号的行 - Python
- python - 函数中的返回工作不正确
- reactjs - 在 React js 中使用 onclick 事件处理 Api 调用
- python-3.x - 尝试从站点打印自定义元素
- flutter - 对齐效果/专注于 ListView.builder 垂直滚动的容器
- date - 谷歌脚本复制并粘贴为值调试
- go - Github 您对本站的访问已在 Go Http 客户端中受到限制
- reactjs - 如何根据用户的关键字实现搜索和过滤以显示对象列表中的数据?