gpt4 book ai didi

java - 将纬度和经度值转换为自定义大小的网格

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:46:09 25 4
gpt4 key购买 nike

我正在制作一个 java 程序,它将一组 lat/lng 坐标分类为自定义大小的特定矩形,因此实际上,将地球表面映射到自定义网格中并能够识别哪个矩形/多边形一点在于。

我正在研究的方法是使用 map 投影(可能是墨卡托投影)。

例如,假设我想将 long/lat 分类为 100m x 100m 的“正方形”,

44.727549、10.419704 和 44.727572、10.420460 将归类到区域 X

44.732496、10.528092 和 44.732999、10.529465 将归类到区域 Y,因为它们相距不到 100 米。(这当然假设它们位于同一边界内)

我不太担心失真,因为我不需要显示 map ,但我确实需要能够分辨出一组坐标属于哪个多边形。

这可能吗?欢迎任何建议。谢谢。

编辑

省略极点的投影也是可以接受的损失

最佳答案

这是我的最终解决方案(在 PHP 中),为每 100 米的正方形创建一个垃圾箱:

function get_static_pointer_table_id($lat, $lng)
{
$earth_circumference = 40000; // km

$lat_bin = round($lat / 0.0009);
$lng_length = $earth_circumference * cos(deg2rad($lat));
$number_of_bins_on_lng = $lng_length * 10;
$lng_bin = round($number_of_bins_on_lng * $lng / 360);
//the 'bin' unique identifier
return $lat_bin . "_" . $lng_bin;

}

关于java - 将纬度和经度值转换为自定义大小的网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24210963/

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