ArcGIS API for JavaScript 开发教程Word下载.docx
- 文档编号:18274504
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:36
- 大小:223.23KB
ArcGIS API for JavaScript 开发教程Word下载.docx
《ArcGIS API for JavaScript 开发教程Word下载.docx》由会员分享,可在线阅读,更多相关《ArcGIS API for JavaScript 开发教程Word下载.docx(36页珍藏版)》请在冰豆网上搜索。
//www.w3.org/1999/xhtml”
>
head
runat=”server”>
title>
Untitled
Page<
/title>
link
rel=”stylesheet”
type=”text/css”
href=”
script
src=”
type=”text/javascript”>
/script>
src=”javascript/webapp.js”>
style
type=”text/css”>
#Text1
{
width:
54px;
}
/style>
/head>
body
class=”tundra”>
form
id=”form1″
table>
tr>
td>
div>
input
id=”Button1″
type=”button”
value=”
点
”
onclick=”tb.activate(esri.toolbars.Draw.POINT);
map.hideZoomSlider();
/>
&
nbsp;
id=”Button2″
线
onclick=”tb.activate(esri.toolbars.Draw.LINE);
id=”Button3″
面
onclick=”tb.activate(esri.toolbars.Draw.POLYGON);
id=”Button4″
value=”漫
游”
onclick=”tb.deactivate();
map.showZoomSlider();
WKID:
id=”wkid”
style=”width:
40px”
type=”text”
value=”102113″
Buffer距离:
id=”distance”
value=”25″
select
id=”unit”
name=”unit”>
option
value=”UNIT_STATUTE_MILE”>
英里<
/option>
value=”UNIT_FOOT”>
码<
value=”UNIT_KILOMETER”>
千米<
value=”UNIT_METER”>
米<
value=”UNIT_NAUTICAL_MILE”>
海里<
value=”UNIT_US_NAUTICAL_MILE”>
美式海里<
value=”UNIT_DEGREE”>
度<
/select>
id=”Button5″
value=”清
除”
onclick=”map.graphics.clear();
/div>
/td>
/tr>
div
id=”map”
550px;
height:
400px;
border:
1px
solid
#000;
”>
td
valign=”top”
align=”left”>
dd<
/table>
/form>
/body>
/html>
3、上面的html代码中主要可以看一下5个input按钮的onclick事件,分别实现了画点、画线、画面、漫游、清楚图形的代码很简单了,还有就是单位选择的select了已经添加了7个常用的单位。
4、切换到wabapp.js编写js代码,本例子的js代码分为3部分功能,第一载入地图进行显示;
第二进行画点、线、面操作;
第三根据画的点、线、面图形进行buffer分析。
具体的说明看代码注释:
dojo.require(“esri.map“);
dojo.require(“esri.tasks.geometry“);
dojo.require(“esri.toolbars.draw“);
dojo.require(“esri.tasks.query“);
djConfig
=
{
isDebug:
true
};
var
map,tb,geometryService,queryTask,query;
function
init()
startExtent
new
esri.geometry.Extent(-183.780014745329,16.2975638854873,-61.4068547410964,74.0304580085983,
esri.SpatialReference({wkid:
4269}));
map
esri.Map(“map“);
//底图Tile图
imageryPrime
esri.layers.ArcGISTiledMapServiceLayer(“
map.addLayer(imageryPrime);
usa
esri.layers.ArcGISDynamicMapServiceLayer(“http:
//jh-53a435fbc0e8/ArcGIS/rest/services/USA/MapServer“);
//设置要显示的图层
//usa.setVisibleLayers([0]);
//设置图层透明度
usa.setOpacity(0.8);
map.addLayer(usa);
//设置地图视图范围
map.setExtent(startExtent);
geometryService
esri.tasks.GeometryService(“http:
//jh-53a435fbc0e8/ArcGIS/rest/services/Geometry/GeometryServer“);
tb
esri.toolbars.Draw(map);
dojo.connect(tb,
“onDrawEnd“,
doDraw);
//画图
doDraw(geometry)
//根据图形的类型定义显示样式
switch
(geometry.type)
case
“point“:
symbol
esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE,
10,
esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,
dojo.Color([255,0,0]),
1),
dojo.Color([0,255,0,0.25]));
break;
“polyline“:
esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASH,
1);
“polygon“:
esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID,
dojo.Color([0,0,0]),
dojo.Color([255,0,0,0.25]));
//把绘制的图形添加到map.graphics进行显示
graphic
esri.Graphic(geometry,
symbol);
map.graphics.add(graphic);
//如果是面需要先进行simplify操作,否则直接进行buffer
if(geometry.type
===
“polygon“)
geometryService.simplify([graphic],doSimplify);
else
doBuffer([graphic]);
//simplify结束调用buffer
doSimplify(graphics)
doBuffer(graphics);
doBuffer(graphics)
//buffer参数
params
esri.tasks.BufferParameters();
//buffer的范围值,从输入框中获取
params.distances
[
dojo.byId("
distance"
).value
];
//空间参考
params.bufferSpatialReference
=new
dojo.byId(“wkid“).value});
//输出结果的空间参考
params.outSpatialReference
map.spatialReference;
params.features
graphics;
//buffer的单位,从列表框获取
params.unit
eval(“esri.tasks.BufferParameters.“+dojo.byId(“unit“).value);
//buffer操作
geometryService.buffer(params,showBuffer);
//显示buffer的结果
showBuffer(features)
esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID,new
esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,new
dojo.Color([255,0,0,0.65]),
2),new
dojo.Color([255,0,0,0.35]));
for
(var
j=0;
j<
features.length;
j++)
esri.Graphic(features[j].geometry,symbol);
tb.deactivate();
dojo.addOnLoad(init);
5、这样就完成了buffer的例子。
标签:
arcgisapijavasrcipt、arcgisserver9.3、buffer149Views
|
1条评论
ArcGIS.Server.9.3和ArcGISAPIforJavaScript保存自定义图形(十)
2009年09月10日10:
01上午
分类:
JavaScript
1.ArcGIS.Server.9.3和ArcGISAPIforJavaScript实现自定义图形,保存自定义的Graphic图形到服务端的xml文件中,同时也能在地图载入时读入xml中的图形数据显示到地图中。
这里的自定义面的Label是通过GeometryServer的labelPoints实现的。
1.在ArcGisServer9.3中发布名为Geometry的GeometryServer。
0.关于GeometryServer的labelPoints介绍,labelPoints允许在多边形中指定Label显示的位置点,是jsapi1.2才支持的新功能,需要需要ArcGISServer9.3sp1支持。
1.启动vs新建名为SaveGraphics的ASP.NETWeb应用程序。
2.接着在工程中添加名为javascript的文件夹并且在这个文件夹里新建mapfunc.js的文件,这里用来编写我们自己的js代码了,在Default.aspx页面里添加对这个js文件的引用,同时在Default.aspx页面里添加一个id为map的div标签作为地图控件的载体、2个input的功能按钮:
CodeBehind=“saveGraphic.aspx.cs“
Inherits=“LabelingSample.saveGraphic“
id=”Head1″
@import
”
type=”text/javascript”
src=”
src=”javascript/mapfunc.js”>
value=”画
图”
onclick=”toolbar.activate(esri.toolbars.Draw.POLYGON);
onclick=”toolbar.deactivate();
600px;
450px;
3、上面的html代码很简单主要是2个input的画图、漫游功能按钮。
4、切换到mapfunc.js开始编写js代码,现在从执行顺序来说明代码。
5、首先是初始化地图显示的init()方法:
esri.Map(“map“,{extent:
esri.geometry.Extent(-183.780014745329,
16.2975638854873,-61.4068547410964,
74.0304580085983,
4269}))});
usamap
map.addLayer(usamap);
toolbar
dojo.connect(toolbar,
//添加map载入后事件监听,用来从xml中读入自定义的图形在地图上显示
dojo.connect(map,“onLoad“,showGraphic);
//设置infoWindow的大小
map.infoWindow.resize(200,
100);
//设置infoWindow的标题头
map.infoWindow.setTitle(“输入名称“);
//实例化GeometryService
//mypc/ArcGIS/rest/services/Geometry/GeometryServer“);
6、上面的init()方法中执行了dojo.connect(map,”onLoad”,showGraphic);
代码,所以接下来是showGraphic()方法代码:
//map载入后事件监听,用来从xml中读入自定义的图形在地图上显示
showGraphic()
//延迟1秒执行
setTimeout(loadGraphic,1000);
7、上面的showGraphic()方法调用了loadGraphic()方法,这样方法中用了dojo的ajax功能向服务端请求获取服务端的xmlData/xmlGraphic.xml数据,关于dojo.xhrGet方法可以参考dojo的帮助,这里首先来看一下xmlGraphic.xml中保存的数据,如下:
?
xml
version=”1.0″
encoding=”gb2312″
-
Graphics>
Graphic>
Content>
{“geometry”:
{“rings”:
[[[-107.3883566182127,25.740182822042797],[-112.9254659932127,25.828073447042797],[-115.7379659932127,31.189401572042797],[-110.8160909932127,31.540964072042797],[-105.5426534932127,28.904245322042797],[-107.3883566182127,25.740182822042797]]],”spatialReference”:
{“wkid”:
4269}},”attributes”:
{“id”:
”0″,”title”:
”广东”},”s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ArcGIS API for JavaScript 开发教程 开发 教程
![提示](https://static.bdocx.com/images/bang_tan.gif)