首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在地图上的英亩内随机位置分配一个点的集合数

在地图上的英亩内随机位置分配一个点的集合数
EN

Stack Overflow用户
提问于 2022-03-28 08:31:06
回答 1查看 57关注 0票数 0

我试图使用Azure地图在平方英里内每英亩分配一些点数。目前,我一直在研究哈沃辛公式,三角,基本划分等,但相信我可能是过度考虑。

有什么想法吗?

让我说,我希望在一平方英里内每英亩投入3分,随机但适当的lat/lng位置在每英亩内。

现在看来,我需要把X和Y除以脚或码,然后再分成lat/lng,以得到合适的位置。

有点不知道lat/lng的距离。例如,我发现的信息显示,一定程度的lat值约为69英里。然后它把它分成“秒”等,很明显。有点困惑。

想法?

EN

回答 1

Stack Overflow用户

发布于 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米。这是计算平方英亩内三个随机点的代码。

代码语言:javascript
复制
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]);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71644475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档