按照AB图形得到相交后的图斑

<!--

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="相交测试._Default" %>

-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" >

<title>相交测试服务</title>

<link rel="stylesheet" type="text/css" href="http://10.0.0.55/jsapi/dijit/themes/tundra/tundra.css" />

<link rel="stylesheet" type="text/css" href="http://10.0.0.55/jsapi/esri/css/esri.css" />

<script type="text/javascript" src="http://10.0.0.55/jsapi/init.js"></script>

<style>

#info {

top: 20px;

color: #444;

height: auto;

font-family: arial;

right: 20px;

margin: 5px;

padding: 10px;

position: absolute;

width: 115px;

z-index: 40;

border: solid 2px #666;

border-radius: 4px;

background-color: #fff;

}

html, body, #mapDiv {

padding:0;

margin:0;

height:100%;

}

button {

display: block;

}

</style>

</head>

<body>

<div>

<script type="text/javascript">

//定义地图

var map, tb, drawEvt;

require([

"esri/map",

"esri/toolbars/draw",

"esri/symbols/SimpleMarkerSymbol",

"esri/symbols/SimpleLineSymbol",

"esri/symbols/PictureFillSymbol",

"esri/symbols/CartographicLineSymbol",

"esri/graphic",

"esri/Color",

"dojo/dom",

"dojo/on",

"esri/tasks/GeometryService",

"esri/tasks/QueryTask",

"esri/tasks/query",

"dojo/domReady!"

],

function (

Map, Draw,

SimpleMarkerSymbol, SimpleLineSymbol,

PictureFillSymbol, CartographicLineSymbol,

Graphic,

Color, dom, on, GeometryService, QueryTask, Query

) {

map = new Map("mapDiv", { "spatialReference": { "wkid": 2359 } });

console.log(map);

var layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://10.0.0.55:6080/arcgis/rest/services/xj/MapServer");

map.addLayer(layer);

map.on("load", initToolbar);

var markerSymbol = new SimpleMarkerSymbol();

markerSymbol.setColor(new Color("#0099FF"));

// lineSymbol used for freehand polyline, polyline and line.

var lineSymbol = new CartographicLineSymbol(

CartographicLineSymbol.STYLE_SOLID,

new Color([255, 0, 0]), 10,

CartographicLineSymbol.CAP_ROUND,

CartographicLineSymbol.JOIN_MITER, 1

);

// fill symbol used for extent, polygon and freehand polygon, use a picture fill symbol

// the images folder contains additional fill images, other options: sand.png, swamp.png or stiple.png

var fillSymbol = new PictureFillSymbol(

"images/mangrove.png",

new SimpleLineSymbol(

SimpleLineSymbol.STYLE_SOLID,

new Color('#050'),

1

),

42,

42

);

function initToolbar() {

tb = new Draw(map);

tb.on("draw-end", addGraphic);

// event delegation so a click handler is not

// needed for each individual button

on(dom.byId("info"), "click", function (evt) {

if (evt.target.id === "info") {

return;

}

var tool = evt.target.id.toLowerCase();

map.disableMapNavigation();

tb.activate(tool);

});

}

function addGraphic(evt) {

tb.deactivate();

map.enableMapNavigation();

var symbol;

if (evt.geometry.type === "point" || evt.geometry.type === "multipoint") {

symbol = markerSymbol;

} else if (evt.geometry.type === "line" || evt.geometry.type === "polyline") {

symbol = lineSymbol;

}

else {

symbol = fillSymbol;

}

//显示用户所绘图形

map.graphics.add(new Graphic(evt.geometry, symbol));

alert("显示用户所绘图形");

//1、先进行相交查询

var queryTask = new QueryTask("http://10.0.0.55:6080/arcgis/rest/services/xj/MapServer/1");

var query = new Query();

query.geometry = evt.geometry;

query.returnGeometry = true;

drawEvt = evt;

queryTask.execute(query, showResults);

}

function showResults(featureSet) {

map.graphics.clear();

//2、将相交的图形置入数组

var geos = [];

dojo.forEach(featureSet.features, function (feature) {

var graphic = feature;

graphic.setSymbol(lineSymbol);

geos.push(feature.geometry);

map.graphics.add(graphic);

});

alert("2、将相交的图形置入数组");

console.log(featureSet, "geos");

//3、调用系统相交服务进行分析,结果得到相交后的图形

geo = new GeometryService("http://10.0.0.55:6080/arcgis/rest/services/Utilities/Geometry/GeometryServer/");

geo.intersect(geos, drawEvt.geometry, output);

}

//这里返回的是数组

function output(geos) {

//4、讲相交后的图形变换,绘制到图上

alert("4、讲相交后的图形变换,绘制到图上");

//  map.graphics.clear();

for (a = 0; a < geos.length; a++) {

var graphic = new Graphic();

graphic.setSymbol(fillSymbol);

graphic.geometry = geos[a];

map.graphics.add(graphic);

}

}

});

</script>

</div>

<div id="info">

<button id="Polygon">Polygon</button>

</div>

<div id="mapDiv" style="width: 900px; height: 600px; border: 1px solid #000;"></div>

</body>

</html>

A与B相交后的图形查询的更多相关文章

  1. ArcGIS Engine开发之图形查询

    图形查询是以用户通过鼠标操作生成的图形几何体为输入条件进行查询的查询,其查询结果为该几何体空间范围内的所有要素.常用的查询方式包括点选.线选.多边形选择.圆形选择和矩形选择等. 相关类与接口 图像查询 ...

  2. mysql(4)—— 表连接查询与where后使用子查询的性能分析。

    子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果. 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表 ...

  3. 矢量图面层和线层相交得到相交后的线层文件(gis相交)

    目的:将arcgis里的面层和线层相交(重叠)部分的线单独生成一个shp文件,用于道路路网密度计算等. 注意:进行相交运算后生成的是线要素文件,相当于把面线相交部分的线单独拿了出来. 操作例子:将图示 ...

  4. 图形查询属性(IdentifyTask实现查询)//查询本地服务

    主页代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <tit ...

  5. C#根据域名查询IP(CMD命令参数输入或者启动程序后再输入查询)

    有时因为需要,希望知道域名的IP,那用C#怎么实现呢?以下是实现代码 using System; using System.Collections.Generic; using System.Linq ...

  6. Spring(五):Spring&Struts2&Hibernate整合后,实现查询Employee信息

    背景: 基于之前两篇文章<Spring(三):Spring整合Hibernate>.<Spring(四):Spring整合Hibernate,之后整合Struts2>,了解了如 ...

  7. 分库分表后跨分片查询与Elastic Search

    携程酒店订单Elastic Search实战:http://www.lvesu.com/blog/main/cms-610.html 为什么分库分表后不建议跨分片查询:https://www.jian ...

  8. Centos7.1 mini版安装后安装图形界面教程

    [1]GNOME安装 1.执行下面命令安装GNOME Desktop Environment yum -y groups install "GNOME Desktop" 2.安装完 ...

  9. Hibernate更新删除数据后,再查询数据依然存在的解决办法

    删除数据后,重新查询了数据库,DB中记录已经删除了,但是数据依然能查询到,网上都说是Hibernate的缓冲问题. 我对session进行了clear,flush,并且在事务和查询中都对session ...

随机推荐

  1. 0525 Scrum 项目 7.0

    Sprint回顾 让我们一次比一次做得更好.   1.回顾组织 主题:“我们怎样才能在下个sprint中做的更好?” 时间:设定为1至2个小时. 参与者:整个团队. 场所:能够在不受干扰的情况下讨论. ...

  2. PE文件学习系列二 DOS头分析

    合肥程序员群:49313181.    合肥实名程序员群 :128131462 (不愿透露姓名和信息者勿加入)Q  Q:408365330     E-Mail:egojit@qq.com PE文件结 ...

  3. gulp教程之gulp-rev-append

    简介: 使用gulp-rev-append给页面的引用添加版本号,清除页面引用缓存. 1.安装nodejs/全局安装gulp/项目安装gulp/创建package.json和gulpfile.js文件 ...

  4. UEditor手动调节其宽度

    其高度一般不考虑,给个初始高度,然后任其自动扩展就行,对于其宽度,有两种思路,一种是调节其所在的DIV的宽度,让其自动填充,另一种是直接调节编辑器的宽度: adjust_editor_size: fu ...

  5. marquee标签实现页面内容的滚动效果

    页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee ...

  6. FZU 2150 Fire Game

    Fire Game Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit St ...

  7. dom事件与event对象总结

    1 事件:就是文档或浏览器窗口中发生的一些特定的交互瞬间.    tips:js和xhtml的交互是通过当用户或浏览器操作网页时发生的事件来处理的. 1.1 事件流:即事件的顺序.        事件 ...

  8. android模块混淆打包时,泛型丢失

    现象:lib模块中写了一个泛型接口,在混淆之后泛型消失,提示"Error:(67, 79) 错误: 类型 ******* 不带有参数" 解决:混淆时把泛型给混淆掉了,在progua ...

  9. CIB Training Scripts For TPC-H Benchmark

    http://52.11.56.155:7180/http://52.11.56.155:8888/ impala-shell -i 172.31.25.244 sudo -u hdfs hdfs d ...

  10. TortoiseSVN文件夹及文件图标不显示解决方法

              由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的功能都能正常的使用,但是就是文件夹或文件夹的左下角就是不显示图标,这个问题前一段时间就遇到了(那个时 ...