GeometryService方法研究之intersect
来源:互联网 发布:淘宝一千零一夜 编辑:程序博客网 时间:2024/06/05 16:46
此方发可以判断一组geometry与某个geometry是否相交
myGeometryService.intersect(geoArr,testgeo,new AsyncResponder(ResultHandle2,FaultHandle2));
function ResultHandle2(arrGraphic:Array, token:Object = null):void{
1.如果 arrGraphic 类型为Polygon,此数组数组大于0,说明有相交的地方
如果是面相交arrGraphic的rings数组值大于0;
如果是点和线相交arrGraphic的rings数组值等于0;
}
function FaultHandle2(info:Object, token:Object = null):void{
Alert.show(info.toString(), "提示");
}
如下图所示
增加一个方法学习
protected function testBtn1_clickHandler(event:MouseEvent):void
{
var wkt:String = "POLYGON((108.49865570600002 30.664672235000012,108.50770146500004 30.66732200299998,108.51230810200002 30.66534229199999,108.515827801 30.655754016000003,108.500713464 30.64970066699999,108.49423942700002 30.660065599000006,108.49865570600002 30.664672235000012))";
var geo:Geometry = WKT.WKT2Geometry(wkt,map.spatialReference);
var geoArr:Array = new Array();
geoArr.push(geo);
myGeometryService.cut(geoArr,lineGraphic.geometry as Polyline,new AsyncResponder(ResultHandle,FaultHandle));
function ResultHandle(cr:CutResult, token:Object = null):void{
if(cr.geometries.length == 2){
var geo1:Geometry = cr.geometries[0];
var gra1:Graphic = new Graphic();
var resultFillSymbol1:SimpleFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,0x8470FF,0.5,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,0x8470FF,0.8,2));
gra1.geometry = geo1;
gra1.symbol = resultFillSymbol1;
map.defaultGraphicsLayer.add(gra1);
var geo2:Geometry = cr.geometries[1];
var gra2:Graphic = new Graphic();
var resultFillSymbol2:SimpleFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,0x847000,0.5,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,0x847000,0.8,2));
gra2.geometry = geo2;
gra2.symbol = resultFillSymbol2;
map.defaultGraphicsLayer.add(gra2);
// var wkttest:String = "POLYGON((108.49865570600002 30.664672235000012,108.49397387924492 30.66694414480465,108.498371123183730.667686536638463,108.49865570600002 30.664672235000012))"
// var testgeo:Geometry = WKT.WKT2Geometry(wkttest,map.spatialReference);
// var gra3:Graphic = new Graphic();
// var resultFillSymbol2:SimpleFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,0x847000,0.5,
// new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,0x847000,0.8,2));
// gra3.geometry = testgeo;
// gra3.symbol = resultFillSymbol2;
// map.defaultGraphicsLayer.add(gra3);
var geoArr:Array = new Array();
geoArr.push(geo1);
myGeometryService.intersect(geoArr,geo2,new AsyncResponder(ResultHandle2,FaultHandle2));
function ResultHandle2(arrGraphic:Array, token:Object = null):void{
var a:int = 0;
if(arrGraphic.length>0){
for each(var pol:Polygon in arrGraphic){
if(pol.rings.length == 0){
Alert.show("点或线相交");
a++;
}else{
Alert.show("面相交");
}
}
if(a == arrGraphic.length){
Alert.show("验证通过");
}
}else{
Alert.show("不相交");
}
}
function FaultHandle2(info:Object, token:Object = null):void{
Alert.show(info.toString(), "提示");
}
}else{
Alert.show("切割后不是2个面");
}
}
function FaultHandle(info:Object, token:Object = null):void{
Alert.show(info.toString(), "提示");
}
}
- GeometryService方法研究之intersect
- GeometryService方法研究之cut
- GeometryService方法研究之relation
- Arcgis for Js之GeometryService实现测量距离和面积
- intersect
- INTERSECT
- Intersect
- FormsAuthentication.HashPasswordForStoringInConfigFile 方法 之研究
- LINQ 之Union All/Union/Intersect操作
- sql之union,intersect,except语句
- LINQ 之Union All/Union/Intersect操作
- LINQ 之Union All/Union/Intersect操作
- 【SQL查询】集合查询之INTERSECT
- HANA集合操作之INTERSECT交集操作
- android之发送短信的方法研究
- android之发送短信的方法研究
- SeaJs研究 之 关键方法实现解析
- Android Service之onStartCommand方法研究
- ExtJs中Radio和radiogroup获取值
- php数组下标不为不连续的数字的问题
- C++拷贝构造函数的使用时机 笔试题
- mysql_config_editor的用法
- 利用ServletContextListener 获取spring上下文
- GeometryService方法研究之intersect
- volley工具包的第二种简介的方法
- Algorithm, Part I Princeton University 公开课第一周 Introduction
- Java设计模式—观察者模式
- 浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘
- 早上发的可编辑ListView的Demo已经整理出来了
- 1004. 成绩排名 (20)
- 数字三角形&&添加回文串&&最短排序&&字符串通配
- iOS简单实用的AES加密(亲测,能用)