设为首页收藏本站

skylineglobe技术交流社区

 找回密码
 注册
查看: 482|回复: 0

怎么实现画圆空间查询

[复制链接]

9

主题

9

帖子

74

积分

超级版主

Rank: 8Rank: 8

积分
74
发表于 2019-7-14 21:46:26 | 显示全部楼层 |阅读模式
本帖最后由 lichen 于 2019-7-21 19:09 编辑

Skyline二次开发中要实现画圆空间查询,空间查询的条件是查询的图层的Geometry和你画的多边形的Geometry两个进行计算,而圆形和矩形是没有Geometry的,这个怎么办呢?
API中有一个CreatePointGeometry(point)方法,point为画的圆的圆心,格式为wkt格式,这样就可以得到一个Geometry点了。

之后再对这个创建的点进行缓冲分析,缓冲半径就是画的圆的半径。具体方法如下
var newPoint = SGWorld.Creator.GeometryCreator.CreatePointGeometry([circle.Position.X,circle.Position.Y,0]);
//对newPoint进行缓冲分析得到圆
//先得到缓冲分析后的Geometry。
var newCircleGeometry = newPoint.SpatialOperator.buffer(circle.Radius);
//利用缓冲分析后得到的Geometry得到新的圆,之前可以删除掉。
var color = SGWorld.Creator.Color(255,0,0);
var newCircle = SGWorld.Creator.CreatePolygon(newCircleGeometry,color,color,0,'','newCircle');
//开始空间查询,假如需要查询的图层为featureLayer
var spatialQueryResult = featureLayer.ExecuteSpatialQuery(newCircleGeometry,1);


查出来之后就可以对查询结果获取一些属性信息或者别的操作了。(完)







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋| SkylineGlobe ( 京ICP备09046777号 )   

GMT+8, 2019-10-16 22:13 , Processed in 0.080577 second(s), 23 queries .

Powered by Skyline中国社区!

© 2013 skylineglobe.cn.

快速回复 返回顶部 返回列表