首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地图上的随机GIS点

地图上的随机GIS点
EN

Stack Overflow用户
提问于 2022-07-18 14:18:24
回答 2查看 81关注 0票数 1

该地图具有地理信息系统区域,由多个区域相互分离而成。例如:

如果我尝试用下面的方法在这个GIS区域生成一个随机的GIS点:

代码语言:javascript
复制
gisPoint = gisRegion.randomPointInside();

任何逻辑只在GIS区域的一个区域生成它们(我不明白它是如何选择特定区域的)!我该如何解决这个问题?

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

发布于 2022-07-21 06:45:37

那么你就会自动有一个多区域,对吗?如果创建由多个区域组成的区域,则项目树中还应该有一个多区域可见。

然后,您仍然可以使用上面描述的相同的逻辑,然后代码是:

代码语言:javascript
复制
GISRegion region = Nederland.randomRegionInside();
Point gisPoint = region.randomPointInside();

myAgents(0).setLocation(gisPoint);

好的,所以如果您使用的是map.searchFirstRegion(municipalityName)方法,它显然不能按您的意愿工作,因为仍然有两个区域,它只选择第一个区域。例如,如果你对美国采取同样的做法,它就会继续在美国众多地区中的一个--一个小岛上--部署特工。所以你使用的方法是不正确的。

由于这是一个由2个区域组成的区域,这是一个多区域。因此,与其寻找第一个区域,不如寻找第一个多区域。为此,您可以使用如下代码:

代码语言:javascript
复制
GISMultiRegion multiregion =  map.searchFirstMultiRegion("United States of America");
GISRegion region = multiregion.randomRegionInside();
Point gisPoint = region.randomPointInside();
myAgents(0).setLocation(gisPoint);
票数 1
EN

Stack Overflow用户

发布于 2022-07-19 13:09:14

看起来gisRegion只是其中的一个区域吗?如果是的话,在一个区域内只选择一个随机点是有意义的。

要解决这个问题,您可以尝试这样的方法(我自己就知道了):

首先创建一个多区域并将两个区域添加到其中。然后选择一个随机区域。然后对于这个随机区域,在这个区域内选择一个随机点。

代码语言:javascript
复制
GISMultiRegion multiregion = new GISMultiRegion();
multiregion.add(gisRegion);
multiregion.add(gisRegion1);

GISRegion region = multiregion.randomRegionInside();
Point gisPoint = region.randomPointInside();

myAgents(0).setLocation(gisPoint);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73023838

复制
相关文章

相似问题

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