我试图使用Azure地图在平方英里内每英亩分配一些点数。目前,我一直在研究哈沃辛公式,三角,基本划分等,但相信我可能是过度考虑。
有什么想法吗?
让我说,我希望在一平方英里内每英亩投入3分,随机但适当的lat/lng位置在每英亩内。
现在看来,我需要把X和Y除以脚或码,然后再分成lat/lng,以得到合适的位置。
有点不知道lat/lng的距离。例如,我发现的信息显示,一定程度的lat值约为69英里。然后它把它分成“秒”等,很明显。有点困惑。
想法?
发布于 2022-04-11 19:13:34
边长63.61米的正方形等于一英亩。要计算该方格内的随机点,首先从拐角的纬度和经度坐标开始,然后计算相对的角坐标,然后计算纬度/经度宽度,然后用它计算起始坐标的随机偏移量。例如,取坐标45,-110,假设这是正方形的左上角。对面的角有135度的航向,到拐角处的距离是sqrt(a^2 + b^2) = sqrt(63.61^2 + 63.61^2) = 89.9581247米。这是计算平方英亩内三个随机点的代码。
var lat = 45;
var lon = -110;
var cornerDistance = 89.9581247;
var cornerHeading = 135;
//Bottom right corner.
var cornerPosition = atlas.math.getDestination([lat, lon], cornerHeading, cornerDistance);
var latWidth = lat - cornerPosition[1]; //Corner is lower.
var lonWidth = cornerPosition[0] - lon; //Corner is to the right.
var randomPositions = [];
for(var i=0;i<3;i++){
randomPositions.push(lon + Math.random()*lonWidth, lat - Math.random() * latWidth]);
}https://stackoverflow.com/questions/71644475
复制相似问题