<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[独木舟 - GIS]]></title>
<link>https://kanoe.cn/</link>
<description><![CDATA[我的IT生活]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[master@kanoe.cn(独木舟)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>独木舟</title>
	<url>https://kanoe.cn/images/logos.gif</url>
	<link>https://kanoe.cn/</link>
	<description>独木舟</description>
</image>

			<item>
			<link>https://kanoe.cn/article/gis/Z-factor.htm</link>
			<title><![CDATA[在地理坐标系下怎样生成山影(hillshade)和坡度(slope)]]></title>
			<author>master@kanoe.cn(独木舟)</author>
			<category><![CDATA[GIS]]></category>
			<pubDate>Tue,24 Nov 2009 15:55:20 +0800</pubDate>
			<guid>https://kanoe.cn/default.asp?id=187</guid>
		<description><![CDATA[很久前看到的一篇文章了，现在翻译成中文与大家分享一下<br/><br/><strong>在地理坐标系下怎样生成山影(hillshade)和坡度(slope)</strong><br/><br/><strong>摘要</strong><br/>当用ArcGIS处理山影或坡度的时候，高程单位(Z units)必须与水平面(x,y)单位一样。这样在处理地理坐标下的数据的时候就出现问题，原因是水平距离单位为经纬度。<br/><br/>在一些情况下，当高程单位是米时，0.00003是一个被推荐的符合实际的Z因子(Z factor)值。虽然这个值还在使用，这篇文章给出了一个更精确的方法来确定当高程单位是米时的Z因子。<br/><br/><strong>过程</strong><br/>下面过程假定生成山影和坡度的时候高程的单位为米。如果高程单位为英尺(feet)，首先使用栅格计算器把栅格乘以0.3048这个转换因子，这样高程单位就是米了。<br/><br/>1.确定目标区域中间的纬度<br/>2.转换度单位为弧度单位<br/>&nbsp;&nbsp;1度=0.0174532925弧度<br/>3.用弧度值按下面等式计算<br/>&nbsp;&nbsp;Z因子(Z factor) = 1.0 / (113200 * cos(&lt;弧度制的纬度&gt;)) <br/>4.在山影和坡度工具中使用这个计算的Z因子<br/><br/><strong>后记</strong><br/>根据上文提到的Z因子一般取值0.00003算出的坡度与投影UTM后算的坡度偏差挺大，不知道文章中为什么说是推荐值。而根据本文方法算的Z因子算出的坡度与投影UTM后算的坡度较吻合，因此此法准确度较高。<br/><br/><a target="_blank" href="http://support.esri.com/index.cfm?fa=knowledgebase.techArticles.articleShow&amp;d=29366" rel="external">原文</a>：<br/><img src="http://support.esri.com/common/style/graphics/icons/techArticle_1.gif" border="0" alt=""/>&nbsp;&nbsp; <strong>HowTo:&nbsp;&nbsp;Cr&#101;ate a hillshade o&#114; slope using data in Geographic coordinates</strong><br/>Article ID:29366<br/>Software: <strong>ArcGIS - ArcEditor</strong> 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3 <strong>ArcGIS - ArcInfo</strong> 8.0.1, 8.0.2, 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3 <strong>ArcGIS - ArcView</strong> 8.1, 8.1.2, 8.2, 8.3, 9.0, 9.1, 9.2, 9.3 <strong>ArcView GIS</strong> 3.0, 3.0a, 3.0b, 3.1, 3.2, 3.2a, 3.3<br/>Platforms:N/A<br/><br/><strong>Summary</strong><br/>When performing a hillshade o&#114; slope function in ArcGIS, the Z units are presumed to be the same as the horizontal (x,y) units. When working with data in geographic coordinates, this is a problem because the linear distance of a degree of latitude varies. <br/><br/>In some cases, a value of 0.00003 was suggested as the Z factor to account for the actual Z unit in meters. While that value can still be used, this article presents a more accurate method of determining the Z factor when the Z units are in meters.<br/><br/><strong>Procedure</strong><br/>The following procedure assumes the Z units of the raster being used to generate the hillshade o&#114; slope are meters. If the Z units of the data being used is feet, first use the raster calculator to multiply the raster by the conversion factor 0.3048, so that the z units are meters.<br/>1.Determine what the middle latitude of the area of interest is. <br/>2.Convert that degree value to radians. <br/>&nbsp;&nbsp; 1 degree = 0.0174532925 radians <br/>3.Use the value in radians in the following equation: <br/>&nbsp;&nbsp; Z factor = 1.0 / (113200 * cos(&lt;input latitude in radians&gt;)) <br/>4.Use this calculated Z factor in the hillshade o&#114; slope tool. <br/><br/><i>Cr&#101;ated:</i> 6/3/2005<br/><i>Last Modified:</i> 8/26/2008]]></description>
		</item>
		
			<item>
			<link>https://kanoe.cn/article/gis/Raster.htm</link>
			<title><![CDATA[对栅格数据肤浅的理解]]></title>
			<author>master@kanoe.cn(独木舟)</author>
			<category><![CDATA[GIS]]></category>
			<pubDate>Thu,23 Jul 2009 18:49:18 +0800</pubDate>
			<guid>https://kanoe.cn/default.asp?id=180</guid>
		<description><![CDATA[1、栅格数据的存储类型<br/>栅格数据一般可以存储为ESRI GRID（由一系列文件组成），TIFF格式（包括一个TIF文件和一个AUX文件），IMAGINE Image格式 在AE中一般调用ISaveAs接口来保存栅格数据<br/>2、栅格数据集和栅格编目的区别<br/>一个栅格数据集由一个或者多个波段（RasterBand）的数据组成，一个波段就是一个数据矩阵。对于格网数据（DEM数据）和单波段的影像数据，表现为仅仅只有一个波段数据的栅格数据集，而对于多光谱影像数据则表现为具有多个波段的栅格数据集<br/>栅格编目（RasterCatalog）用于显示某个研究区域内各种相邻的栅格数据，这些相邻的栅格数据没有经过拼接处理合成一副大的影像图<br/>3、IRasterWorkspaceEx与IRasterWorkspace ,IRsterWorkspace2的区别<br/>1).IRasteWorkspaceEx接口主要是用来读取GeoDatabase中的栅格数据集和栅格编目<br/>2) . IRasterWorkspace ,IRsterWorkspace2主要是用来读取以文件格式存储在本地的栅格数据<br/>4、加载栅格数据（以存储在本地的栅格数据文件为例）<br/>1.直接用IRasterLayer接口打开一个栅格文件并加载到地图控件<br/>IRasterLayer rasterLayer = new RasterLayerClass();<br/>rasterLayer.Cr&#101;ateFromFilePath(fileName); // fileName指存本地的栅格文件路径<br/>axMapControl1.AddLayer(rasterLayer, 0);<br/>2. 用IRasterDataset接口打开一个栅格数据集<br/>IWorkspaceFactory workspaceFactory = new RasterWorkspaceFactory();<br/>IWorkspace workspace;<br/>workspace = workspaceFactory.OpenFromFile(inPath, 0); //inPath栅格数据存储路径<br/>if (workspace == null)<br/>{<br/>Console.WriteLine(&#34;Could not open the workspace.&#34;);<br/>return;<br/>}<br/>IRasterWorkspace rastWork = (IRasterWorkspace)workspace;<br/>IRasterDataset rastDataset;<br/>rastDataset= rastWork.OpenRasterDataset(inName);//inName栅格文件名<br/>if (rastDataset == null)<br/>{<br/>Console.WriteLine(&#34;Could not open the raster dataset.&#34;);<br/>return;<br/>}<br/>5、如何读取栅格数据的属性和遍历栅格数据<br/>栅格数据的属性包括栅格大小，行数，列数，投影信息，栅格范围等等，见下面代码<br/>（假设当前加载的栅格文件栅格值存储方式为：UShort类型）<br/>IRasterProps rasterProps = (IRasterProps)clipRaster;<br/>int dHeight = rasterProps.Height;//当前栅格数据集的行数<br/>int dWidth = rasterProps.Width; //当前栅格数据集的列数<br/>double dX = rasterProps.MeanCellSize().X; //栅格的宽度<br/>double dY = rasterProps.MeanCellSize().Y; //栅格的高度<br/>IEnvelope extent=rasterProps.Extent; //当前栅格数据集的范围<br/>rstPixelType pixelType=rasterProps.PixelType; //当前栅格像素类型<br/>IPnt pntSize = new PntClass();<br/>pntSize.SetCoords(dX, dY);<br/>IPixelBlock pixelBlock = clipRaster.Cr&#101;atePixelBlock(pntSize);<br/>IPnt pnt = new PntClass();<br/>for (int i = 0; i &lt; dHeight; i++)<br/>for (int j = 0; j &lt; dWidth; j++)<br/>{<br/>pnt.SetCoords(i, j);<br/>clipRaster.Read(pnt, pixelBlock);<br/>if (pixelBlock != null)<br/>{<br/>object obj = pixelBlock.GetVal(0, 0, 0);<br/>MessageBox.Show( Convert.ToUInt32(obj).ToString());<br/>}<br/>}<br/>6、如何提取指定的范围的栅格数据<br/>提取指定范围内的栅格数据通常用两种方法IRasterLayerExport(esriCarto), IExtractionOp, IExtractionOp2 ([url=]esriSpatialAnalyst[/url])，IRasterLayerExport接口提供的栅格数据提取功能有限，只能以矩形范围作为提取范围，而IExtractionOp接口提供了多边形，圆，属性，矩形等几种形式作为提取栅格数据.<br/>1).IRasterLayerExport接口<br/>IRasterLayerExport rLayerExport = new RasterLayerExportClass();<br/>rLayerExport.RasterLayer = rasterLayer;// rasterLayer指当前加载的栅格图层<br/>rLayerExport.Extent = clipExtent;//clipExtent指提取栅格数据的范围<br/>if (proSpatialRef != null)<br/>rLayerExport.SpatialReference = proSpatialRef;// proSpatialRef当前栅格数据的投影信息<br/>IWorkspaceFactory pWF = new RasterWorkspaceFactoryClass();<br/>try<br/>{<br/>IWorkspace pRasterWorkspace = pWF.OpenFromFile(_folder, 0);// _folder指栅格文件保存路径<br/>IRasterDataset outGeoDataset = rLayerExport.Export(pRasterWorkspace, code, strRasterType);<br/>//调用ISaveAs接口将导出的数据集保存<br/>……………………..<br/>}<br/>Catch(Exception ex)<br/>{<br/>Throw new Argumention(ex.Message);<br/>}<br/>2．IExtractionOp接口(调用此接口前，应该先检查空间许可)<br/>IExtractionOp extraction = new RasterExtractionOpClass();<br/>try<br/>{<br/>IGeoDataset geoDataset = extraction.Rectangle((IGeoDataset)clipRaster, clipExtent, true);<br/>IRaster raster = geoDataset as IRaster;<br/>if (raster != null)<br/>{<br/>IWorkspaceFactory WF = new RasterWorkspaceFactoryClass();<br/>IWorkspace rasterWorkspace = WF.OpenFromFile(_folder, 0);<br/>ISaveAs saveAs = (ISaveAs)raster;<br/>saveAs.SaveAs(“Result.tif”, rasterWorkspace, &#34;TIFF&#34;);<br/>}<br/>}<br/>catch (Exception ex)<br/>{<br/>MessageBox..Show(Ex.message);<br/>}<br/>7．栅格数据重采样<br/>栅格数据的重采样主要基于三种方法：最邻近采样（NEAREST），双线性<br/>ILINEAR）和三次卷积采样（CUBIC）。<br/>（1）.最邻近采样：它用输入栅格数据中最临近栅格值作为输出值。因此，在重采<br/>样后的输出栅格中的每个栅格值, 都是输入栅格数据中真实存在而未加任何改变的值。这种方法简单易用，计算量小，重采样的速度最快。<br/>（2）.双线性采样：此重采样法取待采样点（x，y）点周围四个邻点，在y方向（或X方向）内插两次，再在x方向（或y方向）内插一次，得到（x，y）点的栅格值。<br/>（3）.三次卷积采样：这是进一步提高内插精度的一种方法。它的基本思想是增加邻点来获<br/>得最佳插值函数。取待计算点周围相邻的16个点，与双线性采样类似，可先在某一方向上内插，如先在x方向上，每四个值依次内插四次，再根据四次的计算结果在y方上内插，最终得到内插结果<br/>代码示例：采用双线性采样<br/>IRasterGeometryProc rasterGeometryProc = new RasterGeometryProcClass();<br/>rasterGeometryProc.Resample(rstResamplingTypes.RSP_CubicConvolution, newCellSize, clipRaster); <br/><br/>]]></description>
		</item>
		
			<item>
			<link>https://kanoe.cn/article/gis/162.htm</link>
			<title><![CDATA[关于SRTM精度]]></title>
			<author>master@kanoe.cn(独木舟)</author>
			<category><![CDATA[GIS]]></category>
			<pubDate>Sat,04 Apr 2009 02:31:16 +0800</pubDate>
			<guid>https://kanoe.cn/default.asp?id=162</guid>
		<description><![CDATA[<p>SRTM数据的由来，相信大家大都有所了解，在此我进行简单的回顾一下，因为相关的介绍太多了，我也就转贴一个国内网站的简单介绍（ZT）：国家图像和测绘局(NIMA)同美国宇航局(NASA)合作2000年进行了航天飞机雷达拓扑测绘(SRTM)，即以航天飞机为平台对全球进行了同轨干涉(InSAR)雷达立体测绘。为了得到雷达信号干涉图，在航天飞机舱内安装了一副主天线，再在舱外安装了一副副天线，雷达波由主天线向地面发射，回波由主副两天线同时接收。两副天线收到的回波会存在细小差别，两者相位差称为干涉相位。在已知雷达参数和航天飞机飞行参数的情况下，通过干涉相位和基线可以计算出地面目标的高程。航天飞机上的合成孔径雷达--SIR-C/X(航天成像雷达-C/X)，由SIR-C和X-SAR两台SAR集成。其中SIR-C是一台双频多极化多视角SAR，而X-SAR是单频单极化多视角SAR。我补充的是SAR（合成孔径雷达）技术其实早在50年代就已经用在飞机上了，后来随着航天技术的发展，才被装到卫星上，他除了可以进行探测地形数据之外，还可以感测冰川变化，地震、海啸灾害造成的地壳变化，森林、农业方面也有很多应用。在2000年的航天飞机完成SRTM任务之前，90年代还有过航天飞机的两次类似的飞行，只是装载的雷达的精度低以及的飞行时间也较短（约50小时），属于测试性质飞行。 <br />
自从SRTM成功实施以后，各国都加大了对于SAR技术的研究，美国、欧盟等相继发射了相关卫星，目前的公开的标称精度已达到3米（军用的侦察卫星应该更高一些），我国的SAR的技术水平，我看到的机载（指飞机）的精度能达到一米以下。如果装载到卫星上，精度就不好说了。SAR是当今卫星遥感的一个方向，早期的国内遥感教材（90年代）大多介绍光谱类的遥感理论，很少涉及此方面。近一两年的大学遥感教材多会有一两章节介绍雷达在遥感领域的应用（补充一下，我是因为业余爱好所以经常会到书店找遥感方面的书有此体会），商业化的专业遥感软件如PCI、ERDAS等随着版本的升级，雷达数据分析方面的功能也越做越强。 <br />
DEM是USGS制定的数字高程官方标准，网上可以公开下载，加起来100多页 USGS制定的DEM标准，为了与讨论的话题接近，我就画繁为简，通俗简单的描述一下，以1度区域的数据为例子：1度==3600秒，SRTM-1（1弧秒）精度的数据是将1度的面积分成了3600x3600个小区域，每一个小区域的大小是1弧秒（约30x30米的面积，实际上随着纬度的变化，面积会有一定的差异），，SRTM-3（3弧秒）精度的数据是将1度的面积分成了1200x1200个小区域，每一个小区域的大小是3弧秒( 90x90米)。任何一个小区域只有一个数值代表给区域的中心的海拔高程，其余区域的高程数值都是通过该区域本身的一个高程数值以及相邻区域的高程属性值作距离加权差分计算的。相对而言，划分的区域面积越少，海拔的精度就越高。 <br />
SRTM与DEM的关系，SRTM仅仅是获取地形数据的方法之一，而且SRTM的数据结构与DEM类似，转换起来很容易。其他的如立体像对也能获取DEM数据，如ASTER的DEM水平采样精度大约30米，（据网上传说最初ASTER数据对于研究机构可以免费获得，还来才收费的，不知是否属实），SPOT5的精度水平定位精度15米链接国内的产品代理，而且spot5的法国厂家也要生成覆盖全球的数字高程模型，当然还有其它的一些方法获取地形数据。 <br />
SRTM的数据是用16位的数值表示高程数值的（-/+/32767米），最大的正高程9000米，负高程（海平面以下12000米）。空数据用-32767标准（空数据修复的依据，SRTMFILL以及用MATLAB的编程序修复都基于原始的数据本身的修复，仅仅是算法有一些区别，小空洞效果还勉强，大的洞效果不好。用其他的辅助数据高程的数据如GTOPO30 修复，一般需要编程，自从绿野的GENO同学发了一个数据修复后的下载网址后我发现该网站公布了ARCINFO以及TIFF两种修复格式，就仔细的查阅ARCINFO Workstation版的帮助文件，发现用Workstation版本身有一个命令，可以直接用辅助的数据如GTOPO30 等修复空洞数据，不需要编程序）。存储结构方面，大家都知道，计算机的数值是用二进制存储的，对于数值既可以高位在前，亦可以低位在前，因为STRM数据使用工作站处理的，它的存储结构与X86的方式正好相反，故此在SRTM数据早期发布的时候出了GM、OZI等功能一般的普通软件可以处理以外，功能强大的一些PC版的商业软件反而处理不了，不过现在除了旧版本的软件外，新版本一般都更正了这个问题。 <br />
关于DEM数据的精度，USGS有相关的数据可以作参考，大体上1度的幅面（1度、30分、15分、7.5分等是地图幅面的区别，幅面越小，精度越高）采用的是3弧秒精度的数据，精度是1：250000，30分幅面的数据用的2弧秒精度的数据，精度是1：100000，15分的数据用2弧秒精度（Alaska：阿拉斯加州用）1：63366，7.5分的数据用1弧秒或1/3弧秒（水平采样精度10米）1：24000，相关的网页链接如下里面关于DEM的东西很多,也可以看看。在美国3弧秒精度的数据是被当作25万比例地图数据使用的。 <br />
National Imagery and Mapping Agency&rsquo;s（NIMA ）国家图像和测绘局：主管军用测绘和照相侦察两方面的事务，受美国国防部指挥。他制定DIGITAL TERRAIN ELEVATION DATA（DTEM）的标准包括了SRTM： <br />
现摘录部分章节如下： <br />
Scope. This specification defines the requirements within <br />
National Imagery and Mapping Agency&rsquo;s (NIMA) Digital Terrain Elevation DataBase which supports various weapon and training systems. This edition <br />
includes the Shuttle Radar Topography Mission (SRTM) DTED Level 1 and Level 2 <br />
requirements. <br />
3.3.1 DTED Level 1 accuracy. <br />
3.3.1.1 Absolute accuracy. <br />
3.3.1.1.1 Absolute horizontal accuracy. <br />
90% Circular Error (C.E.) World Geodetic System (WGS) &lt; 50 meters <br />
3.3.1.1.2 Absolute vertical accuracy. <br />
90% Linear Error (L.E.) Mean Sea Level (MSL) &le; 30 meters <br />
3.3.1.2 Relative vertical accuracy (point-to-point). <br />
90% L.E. MSL &le;20 meters over a 1&deg; cell <br />
3.3.2 DTED Level 2 accuracy. <br />
3.3.2.1 Absolute accuracy. <br />
3.3.2.1.1 Absolute horizontal accuracy. <br />
90% Circular Error (C.E.) World Geodetic System (WGS) &le; 23 meters <br />
3.3.2.1.2 Absolute vertical accuracy. <br />
90% Linear Error (L.E.) Mean Sea Level (MSL) &le; 18 meters <br />
3.3.2.2 Relative vertical accuracy (point-to-point). <br />
90% L.E. MSL &le; 12 meters over a 1&deg; cell for low and medium <br />
terrain (0 to 20% predominant slope). <br />
90% L.E. MSL &le; 15 meters over a 1&deg; cell for high relief terrain <br />
er than 20% predominant slope). <br />
T3.10.9.4SRTM Accuracies. The SRTM DTED Level 2 has a system design 16 <br />
meter absolute vertical height accuracy, 10 meters relative vertical height <br />
accuracy and 20 meter absolute horizontal circular accuracy. All accuracies <br />
are at the 90% level. Individual SRTM DTED Level 2 cells have an accuracy <br />
recorded in the ACC record calculated from the collection parameters. These <br />
values will differ from the system design accuracies.（系统的设计精度更高一些） <br />
说明：Level 2是1弧秒的SRTM，Level 1是3弧秒的SRTM数据 <br />
可以点击链接选择 <br />
Performance Specification Digital Terrain Elevation Data (DTED)或者 <br />
直接点击链接因为MIL的后缀，与军事有关可能部分地区上不了所以我特意选择了部分同精度有关的部分。 <br />
再看看国内的标准，国家的标准出版社有相关的大比例地图制作标准，我在书店已经查阅过了，是2001年实施的新标准： <br />
高程精度（米）：平原 丘陵 山地 高山地 <br />
1：50000 <br />
标记点： 2.5 4.0 6.0 10.0 <br />
等高线： 3.0 5.0 8.0 14.0 <br />
1：100000 <br />
标记点： 5.0 8.0 12.0 20.0 <br />
等高线 6.0 10.0 16.0. 28.0 <br />
25万比例的精度书中未收录，等高线间隔1：50000在丘陵（10米），山地（20米），1：100000在丘陵（20米），山地（40米）， <br />
1：2500000在丘陵（50米），山地（100米）。 <br />
其中高山地是否是指雪山类的高海拔地区，标准里面没有提到。即便考虑高山地（雪山地区最大误差10米），1：50000的精度也只有1弧秒的DEM才能达到此要求，根据USA的DTEM标准参考文中的SRTM-3的精度最大误差（Absolute vertical accuracy ：30米/Absolute horizontal accuracy：50米）.国内的1：100000的标准也达不到，算作1：2500000也差不多。 <br />
SRTM-1与SRTM-3 的简单对比：根据DEM的数据模型，90x90米的区域只有一个高程点，其它数值是通过差分获取的，在平原地区（广义的平原地区，有时候高海拔的地区也有很多的平缓地区）因为地形起伏不大与SRTM-1（30x30米）的精度区别不多，丘陵地区，国内外丘陵地区的定义有一定的差异，500米以下认为是丘陵地区争议不大，有学者将7、8百米左右的低海拔山区也当作丘陵地区看待，虽然片面地以海拔、不考虑地形因素有失偏颇。但海拔确实是一个重要的因素。一般的丘陵地区地势变化平缓，SRTM-3精度有少量的误差。山区，主峰超过1000米的山地，如灵山地区，海拔虽然高，地形变化并不太剧烈，但是如云蒙山地区等，还有一些不知名的野山，地形复杂，断崖冲沟较多，SRTM-3 有较大的误差，而且因为的数据区域过大，很多小的冲沟、断崖地形根本无法反映出来。考虑到不应该仅仅考虑高程的误差。还有考虑因为区域间隔距离过大造成的水平即经纬度的误差。不仅是我，还有相当的网友反映登顶的GPS主峰与SRTM的数据有6、7十米的误差（虽然老美的精度写了水平误差90%最大不超过50米，不过还有10%？？？） <br />
补充：点击SRTM workshop或者 直接点击，美国的官方网站的说明，要对于SRTM数据同其它的高程数据比较修复，希望除了能修复空洞，提高精度外，能够将SRTM-1 的在欧亚大陆部分工公布出来。 <br />
SRTM-3（弧秒）的数据精度是多少，相信不少网友有此疑问，网上流传有的5万、十万比例等，但一直没有确切的定义与讨论。最初我虽然发现数次SRTM的精度有较大的偏差，但还是认为他的精度达不到5万，也应该有10万，如果此次的SRTM-3相当于1：25万比例地图的讨论大家有争议，欢迎根贴讨论（附图我贴一个ASTER的DEM数据）。</p>
<p><b>栅格数据结构</b></p>
<p>栅格结构是以规则的阵列来表示空间地物或现象分布的数据组织，组织中的每个数据表示地物或现象的非几何属性特征。</p>
<p>栅格结构的显著特点：属性明显，定位隐含，即数据直接记录属性的指针或数据本身，而所在位置则根据行列号转换为相应的坐标。</p>
<p>栅格数据的编码方法：直接栅格编码，就是将栅格数据看作一个数据矩阵，逐行（或逐列）逐个记录代码；压缩编码，包括</p>
<p>链码（弗里曼链码）比较适合存储图形数据；</p>
<p>游程长度编码通过记录行或列上相邻若干属性相同点的代码来实现；</p>
<p>块码是有成长度编码扩展到二维的情况，采用方形区域为记录单元；</p>
<p>四叉树编码是最有效的栅格数据压缩编码方法之一，还能提高图形操作效率，具有可变的分辨率。</p>
<p><b>矢量数据结构</b></p>
<p>矢量数据结构是通过记录坐标的方式尽可能精确地表示点、线和多边形等地理实体，坐标空间设为连续，允许任意位置、长度和面积的精确定义。</p>
<p>矢量结构的显著特点：定位明显，属性隐含。</p>
<p>矢量数据的编码方法：</p>
<p>对于点实体和线实体，直接记录空间信息和属性信息；</p>
<p>对于多边形地物，有坐标序列法、树状索引编码法和拓扑结构编码法。坐标序列法是由多边形边界的x,y坐标对集合及说明信息组成，是最简单的一种多边形矢量编码法，文件结构简单，但多边形边界被存储两次产生数据冗余，而且缺少邻域信息；树状索引编码法是将所有边界点进行数字化，顺序存储坐标对，由点索引与边界线号相联系，以线索引与各多边形相联系，形成树状索引结构，消除了相邻多边形边界数据冗余问题；拓扑结构编码法是通过建立一个完整的拓扑关系结构，彻底解决邻域和岛状信息处理问题的方法，但增加了算法的复杂性和数据库的大小。</p>
<p><b>矢量栅格数据的比较</b></p>
<p>矢量数据的优缺点：</p>
<p><b>优点</b>为数据结构紧凑、冗余度低，有利于网络和检索分析，图形显示质量好、精度高；</p>
<p>缺点为数据结构复杂，多边形叠加分析比较困难。</p>
<p>栅格数据的优缺点：</p>
<p><b>优点</b>为数据结构简单，便于空间分析和地表模拟，现势性较强；</p>
<p>缺点为数据量大，投影转换比较复杂。</p>
<p>两者比较：</p>
<p>栅格数据操作总的来说容易实现，矢量数据操作则比较复杂；</p>
<p>栅格结构是矢量结构在某种程度上的一种近似，对于同一地物达到于矢量数据相同的精度需要更大量的数据；在坐标位置搜索、计算多边形形状面积等方面栅格结构更为有效，而且易于遥感相结合，易于信息共享；矢量结构对于拓扑关系的搜索则更为高效，网络信息只有用矢量才能完全描述，而且精度较高。对于地理信息系统软件来说，两者共存，各自发挥优势是十分有效的。</p>
<p><b>矢量栅格相互转换算法</b></p>
<p><b>矢量转栅格</b>：内部点扩散法，即由多边形内部种子点向周围邻点扩散，直至到达各边界</p>
<p>为止；复数积分算法，即由待判别点对多边形的封闭边界计算复数积分，来判断两者关</p>
<p>系；射线算法和扫描算法，即由图外某点向待判点引射线，通过射线与多边形边界交点</p>
<p>数来判断内外关系；边界代数算法，是一种基于积分思想的矢量转栅格算法，适合于记</p>
<p>录拓扑关系的多边形矢量数据转换，方法是由多边形边界上某点开始，顺时针搜索边界</p>
<p>线，上行时边界左侧具有相同行坐标的栅格减去某值，下行时边界左侧所有栅格点加上</p>
<p>该值，边界搜索完毕之后即完成多边形的转换。</p>
<p><b>栅格转矢量</b>：即是提取具有相同编号的栅格集合表示的多边形区域的边界和边界的拓扑关系，并表示成矢量格式边界线的过程。步骤包括：多边形边界提取，即使用高通滤波</p>
<p>将栅格图像二值化；边界线追踪，即对每个弧段由一个节点向另一个节点搜索；拓扑关</p>
<p>系生成和去处多余点及曲线圆滑。</p>]]></description>
		</item>
		
			<item>
			<link>https://kanoe.cn/article/gis/CustomTaskIdea.htm</link>
			<title><![CDATA[关于自定义任务（Tasks）的心得]]></title>
			<author>master@kanoe.cn(独木舟)</author>
			<category><![CDATA[GIS]]></category>
			<pubDate>Fri,27 Mar 2009 00:59:54 +0800</pubDate>
			<guid>https://kanoe.cn/default.asp?id=158</guid>
		<description><![CDATA[１、类简介<br/>在ADF中，提供了任务管理器控件（TaskManager）以及任务结果控件（TaskResults）。任务管理器控件可以容纳ADF中提供的一系列任务控件（如：SearchAttributesTask/QueryAttributesTask/FindPlaceTask/FindAddressTask/GeoprocessingTask/EditorTask），我们自定义的任务控件也可以放置在内。<br/>自定义任务控件一般是从任务抽象类（Task或者FloatingPanelTask）继承而来。FloatingPanelTask与Task的相同之处在于它们都是从System.Web.UI.WebControls.CompositeControl继承而来，而System.Web.UI.WebControls.CompositeControl实现了ICallbackEventHandler接口，所以它们都具有Ajax能力。<br/>FloatingPanelTask与Task的区别在于是否被包含在FloatingPanel中。所以以下重点谈谈任务抽象类Task。Task类除了实现ICallbackEventHandler外，还实现了二个接口：IBuddyControlSupport以及ITask。<br/>（1）IBuddyControlSupport接口定义了方法GetSupportedBuddyControlTypes，来说明任务绑定的空间类型。如OverviewMap控件绑定Map, Toolbar控件绑定Map以及PageLayout控件。我们如果对Map操作，则可以使用如下代码：<br/>public Type[] GetSupportedBuddyControlTypes() {return new Type[] { typeof(Map) };}<br/>（2）ITask接口<br/>主要属性以及方法<br/>object Input { get; set;} <br/>提交前后的参数。由于Task继承于CompositeControl，因此会将变量参数内容存储在变量_callbackArg中。所以一般在GetCallbackResult()中会利用_callbackArg生成Input内容。所生成的生成Input内容一般在ExecuteTask()中进行使用。<br/>object Results { get;set;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;任务所生成的结果。一般在ExecuteTask()中生成。在类FloatingPanelTask中方法GetCallbackResult()中会调用DisplayResults(taskJobID, Input, Results)，而DisplayResults则对任务结果控件进行结果遍历显示resultsContainer.DisplayResults(this, jobID, taskInput, taskResults);<br/>CallbackResultCollection CallbackResults { get;}<br/>回调结果集合。在DisplayResults(taskJobID, Input, Results)调用任务结果控件进行结果遍历显示后，会执行CallbackResults.CopyFrom(resultsContainer.CallbackResults)来进行回调登记。在类FloatingPanelTask中方法GetCallbackResult()中会执行CallbackResults.ToString()来产生下一次回调内容。<br/>除了实现以上两个接口的内容外，自定义任务很重要的一个方法是Cr&#101;ateChildControls()方法。为了将子控件增加到控件集合中去，必须重写受保护的Cr&#101;ateChildControls()方法。在这个方法中，我们使用Controls.Add()方法添加每个子控件到控件树中。当然，为了避免子控件与页面其他控件之间的命名冲突，我们使用INamingContainer接口。<br/>２、示例Common_CustomTask_CSharp简说<br/>（1）在Cr&#101;ateChildControls ()中有关任务执行按钮的代码：<br/>string argument = string.Format(&#34;&#39;bufferdistance=&#39; + document.getElementById(&#39;{0}&#39;).value&#34;, distanceInput.ClientID);<br/>string onClick = string.Format(&#34;executeTask({0},\&#34;{1}\&#34;);&#34;, argument, CallbackFunctionString);<br/>button.Attributes.Add(&#34;onclick&#34;, onClick);<br/>在这里，按钮的Click事件激发了executeTask方法。产生的参数如下：<br/>WebForm_DoCallback(&#39;TaskManager1$SimpleTask_CSharp1&#39;,argument,processCallbackResult,context,postBackError,true)&#34;);&#34;<br/>executeTask方法存在于display_task.js中。以下为相关代码：<br/>var taskJobIDCounter = 0;<br/>function executeTask(callbackArguments, callbackFunctionString, taskJobID)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (taskJobID == null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;taskJobIDCounter++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;taskJobID = taskJobIDCounter;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;startActivityIndicator(callbackArguments, callbackFunctionString, taskJobID);<br/>&nbsp;&nbsp;&nbsp;&nbsp;var tmp=&#34;startJob(\&#34;&#34; + callbackArguments.replace(&#39;\&#34;&#39;,&#39;\\&#34;&#39;) + &#34;\&#34;,\&#34;&#34; + callbackFunctionString + &#34;\&#34;&#34; + &#34;,&#34; + taskJobID + &#34;)&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;window.setTimeout(tmp,1000);<br/>}<br/>function startActivityIndicator(callbackArguments, callbackFunctionString, taskJobID)<br/>{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;var argument = &#34;EventArg=startTaskActivityIndicator&amp;taskJobID=&#34; + taskJobID;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (callbackArguments.length &gt; 0) argument += &#34;&amp;&#34; + callbackArguments;<br/>var context = null;<br/>//发出WebForm_DoCallback调用,<br/>//argument为&#34;EventArg=startTaskActivityIndicator&amp;taskJobID=&#34;+taskJobID; +callbackArguments<br/>&nbsp;&nbsp;&nbsp;&nbsp;eval(callbackFunctionString);<br/>}<br/>function startJob(callbackArguments, callbackFunctionString, taskJobID)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;var argument = &#34;EventArg=executeTask&amp;taskJobID=&#34; + taskJobID;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (callbackArguments.length &gt; 0) argument += &#34;&amp;&#34; + callbackArguments;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var context = null;<br/>//发出WebForm_DoCallback调用,<br/>//argument为&#34;EventArg=executeTask&amp;taskJobID=&#34; + taskJobID;&#34;+ callbackArguments<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eval(callbackFunctionString);<br/>}<br/>很显然，display_task.js中的executeTask()方法引起了Ajax形式的CallBack。产生的字符串为&#34;EventArg=executeTask&amp;taskJobID=2&amp; bufferdistance=10&#34;<br/>　　（２）由于Task继承于CompositeControl，因此会将变量参数内容存储在变量_callbackArg中。一般在GetCallbackResult()中会利用_callbackArg生成Input内容。<br/>NameValueCollection keyValColl = CallbackUtility.ParseStringIntoNameValueCollection(_callbackArg);<br/>if (keyValColl[&#34;EventArg&#34;] == &#34;executeTask&#34;)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp; string sDistance = keyValColl[&#34;bufferdistance&#34;];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float fDistance;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float.TryParse(sDistance, out fDistance);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object[] inputs = new object[2];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inputs[0] = fDistance;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElementGraphicsLayer clonedLayer = GraphicsLayer.Clone() as ElementGraphicsLayer;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (DataRow row in GraphicsLayer.Rows) clonedLayer.ImportRow(row);<br/>&nbsp;&nbsp;&nbsp;&nbsp; inputs[1] = clonedLayer;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GraphicsLayer.Clear();<br/>&nbsp;&nbsp;&nbsp;&nbsp; input = inputs;<br/>}<br/>（３）所生成的生成Input内容一般在ExecuteTask()中进行使用。<br/>object[] inputs = Input as object[];<br/>//buffer distance<br/>float bufferdistance = (float)inputs[0];<br/>if (float.IsNaN(bufferdistance)) bufferdistance = 0.0F;<br/>ESRI.ArcGIS.ADF.Web.Display.Graphics.ElementGraphicsLayer inputLayer = inputs[1] as ElementGraphicsLayer;<br/>if (inputLayer == null)&nbsp;&nbsp;return;<br/>。。。。。。<br/>3、建议参考的其它示例：<br/>（1）<br/><a target="_blank" href="http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2007/10/24/Displaying-task-results-in-a-table.aspx" rel="external">http://blogs.esri.com/Dev/blogs/ ... lts-in-a-table.aspx</a><br/>（2）<br/><a target="_blank" href="http://arcscri&#112;ts.esri.com/details.asp?dbid=15133" rel="external">http://arcscripts.esri.com/details.asp?dbid=15133</a><br/>（3）<br/><a target="_blank" href="http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2007/05/16/Print-Task-Sample.aspx" rel="external">http://blogs.esri.com/Dev/blogs/ ... nt-Task-Sample.aspx</a><br/>]]></description>
		</item>
		
			<item>
			<link>https://kanoe.cn/article/gis/157.htm</link>
			<title><![CDATA[关于自定义任务（Tasks）的心得（转载）]]></title>
			<author>master@kanoe.cn(独木舟)</author>
			<category><![CDATA[GIS]]></category>
			<pubDate>Tue,24 Mar 2009 21:30:18 +0800</pubDate>
			<guid>https://kanoe.cn/default.asp?id=157</guid>
		<description><![CDATA[１、类简介<br/>在ADF中，提供了任务管理器控件（TaskManager）以及任务结果控件（TaskResults）。任务管理器控件可以容纳ADF中提供的一系列任务控件（如：SearchAttributesTask/QueryAttributesTask/FindPlaceTask/FindAddressTask/GeoprocessingTask/EditorTask），我们自定义的任务控件也可以放置在内。<br/>自定义任务控件一般是从任务抽象类（Task或者FloatingPanelTask）继承而来。FloatingPanelTask与Task的相同之处在于它们都是从System.Web.UI.WebControls.CompositeControl继承而来，而System.Web.UI.WebControls.CompositeControl实现了ICallbackEventHandler接口，所以它们都具有Ajax能力。<br/>FloatingPanelTask与Task的区别在于是否被包含在FloatingPanel中。所以以下重点谈谈任务抽象类Task。Task类除了实现ICallbackEventHandler外，还实现了二个接口：IBuddyControlSupport以及ITask。<br/>（1）IBuddyControlSupport接口定义了方法GetSupportedBuddyControlTypes，来说明任务绑定的空间类型。如OverviewMap控件绑定Map, Toolbar控件绑定Map以及PageLayout控件。我们如果对Map操作，则可以使用如下代码：<br/>public Type[] GetSupportedBuddyControlTypes() {return new Type[] { typeof(Map) };}<br/>（2）ITask接口<br/>主要属性以及方法<br/>object Input { get; set;} <br/>提交前后的参数。由于Task继承于CompositeControl，因此会将变量参数内容存储在变量_callbackArg中。所以一般在GetCallbackResult()中会利用_callbackArg生成Input内容。所生成的生成Input内容一般在ExecuteTask()中进行使用。<br/>object Results { get;set;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;任务所生成的结果。一般在ExecuteTask()中生成。在类FloatingPanelTask中方法GetCallbackResult()中会调用DisplayResults(taskJobID, Input, Results)，而DisplayResults则对任务结果控件进行结果遍历显示resultsContainer.DisplayResults(this, jobID, taskInput, taskResults);<br/>CallbackResultCollection CallbackResults { get;}<br/>回调结果集合。在DisplayResults(taskJobID, Input, Results)调用任务结果控件进行结果遍历显示后，会执行CallbackResults.CopyFrom(resultsContainer.CallbackResults)来进行回调登记。在类FloatingPanelTask中方法GetCallbackResult()中会执行CallbackResults.ToString()来产生下一次回调内容。<br/>除了实现以上两个接口的内容外，自定义任务很重要的一个方法是Cr&#101;ateChildControls()方法。为了将子控件增加到控件集合中去，必须重写受保护的Cr&#101;ateChildControls()方法。在这个方法中，我们使用Controls.Add()方法添加每个子控件到控件树中。当然，为了避免子控件与页面其他控件之间的命名冲突，我们使用INamingContainer接口。<br/><br/>２、示例Common_CustomTask_CSharp简说<br/>（1）在Cr&#101;ateChildControls ()中有关任务执行按钮的代码：<br/>string argument = string.Format(&#34;&#39;bufferdistance=&#39; + document.getElementById(&#39;{0}&#39;).value&#34;, distanceInput.ClientID);<br/>string onClick = string.Format(&#34;executeTask({0},\&#34;{1}\&#34;);&#34;, argument, CallbackFunctionString);<br/>button.Attributes.Add(&#34;onclick&#34;, onClick);<br/>在这里，按钮的Click事件激发了executeTask方法。产生的参数如下：<br/>WebForm_DoCallback(&#39;TaskManager1$SimpleTask_CSharp1&#39;,argument,processCallbackResult,context,postBackError,true)&#34;);&#34;<br/>executeTask方法存在于display_task.js中。以下为相关代码：<br/>var taskJobIDCounter = 0;<br/><br/>function executeTask(callbackArguments, callbackFunctionString, taskJobID)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (taskJobID == null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;taskJobIDCounter++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;taskJobID = taskJobIDCounter;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;startActivityIndicator(callbackArguments, callbackFunctionString, taskJobID);<br/>&nbsp;&nbsp;&nbsp;&nbsp;var tmp=&#34;startJob(\&#34;&#34; + callbackArguments.replace(&#39;\&#34;&#39;,&#39;\\&#34;&#39;) + &#34;\&#34;,\&#34;&#34; + callbackFunctionString + &#34;\&#34;&#34; + &#34;,&#34; + taskJobID + &#34;)&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;window.setTimeout(tmp,1000);<br/>}<br/><br/>function startActivityIndicator(callbackArguments, callbackFunctionString, taskJobID)<br/>{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;var argument = &#34;EventArg=startTaskActivityIndicator&amp;taskJobID=&#34; + taskJobID;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (callbackArguments.length &gt; 0) argument += &#34;&amp;&#34; + callbackArguments;<br/>var context = null;<br/>//发出WebForm_DoCallback调用,<br/>//argument为&#34;EventArg=startTaskActivityIndicator&amp;taskJobID=&#34;+taskJobID; +callbackArguments<br/>&nbsp;&nbsp;&nbsp;&nbsp;eval(callbackFunctionString);<br/>}<br/><br/>function startJob(callbackArguments, callbackFunctionString, taskJobID)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;var argument = &#34;EventArg=executeTask&amp;taskJobID=&#34; + taskJobID;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (callbackArguments.length &gt; 0) argument += &#34;&amp;&#34; + callbackArguments;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var context = null;<br/>//发出WebForm_DoCallback调用,<br/>//argument为&#34;EventArg=executeTask&amp;taskJobID=&#34; + taskJobID;&#34;+ callbackArguments<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eval(callbackFunctionString);<br/>}<br/>很显然，display_task.js中的executeTask()方法引起了Ajax形式的CallBack。产生的字符串为&#34;EventArg=executeTask&amp;taskJobID=2&amp; bufferdistance=10&#34;<br/>　　（２）由于Task继承于CompositeControl，因此会将变量参数内容存储在变量_callbackArg中。一般在GetCallbackResult()中会利用_callbackArg生成Input内容。<br/>NameValueCollection keyValColl = CallbackUtility.ParseStringIntoNameValueCollection(_callbackArg);<br/>if (keyValColl[&#34;EventArg&#34;] == &#34;executeTask&#34;)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp; string sDistance = keyValColl[&#34;bufferdistance&#34;];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float fDistance;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float.TryParse(sDistance, out fDistance);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object[] inputs = new object[2];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inputs[0] = fDistance;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElementGraphicsLayer clonedLayer = GraphicsLayer.Clone() as ElementGraphicsLayer;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (DataRow row in GraphicsLayer.Rows) clonedLayer.ImportRow(row);<br/>&nbsp;&nbsp;&nbsp;&nbsp; inputs[1] = clonedLayer;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GraphicsLayer.Clear();<br/>&nbsp;&nbsp;&nbsp;&nbsp; input = inputs;<br/>}<br/>（３）所生成的生成Input内容一般在ExecuteTask()中进行使用。<br/>object[] inputs = Input as object[];<br/>//buffer distance<br/>float bufferdistance = (float)inputs[0];<br/>if (float.IsNaN(bufferdistance)) bufferdistance = 0.0F;<br/>ESRI.ArcGIS.ADF.Web.Display.Graphics.ElementGraphicsLayer inputLayer = inputs[1] as ElementGraphicsLayer;<br/>if (inputLayer == null)&nbsp;&nbsp;return;<br/>。。。。。。<br/><br/>3、建议参考的其它示例：<br/>（1）<a href="http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2007/10/24/Displaying-task-results-in-a-table.aspx" target="_blank" rel="external">http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2007/10/24/Displaying-task-results-in-a-table.aspx</a><br/>（2）<a href="http://arcscri&#112;ts.esri.com/details.asp?dbid=15133" target="_blank" rel="external">http://arcscri&#112;ts.esri.com/details.asp?dbid=15133</a><br/>（3）<a href="http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2007/05/16/Print-Task-Sample.aspx" target="_blank" rel="external">http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2007/05/16/Print-Task-Sample.aspx</a>]]></description>
		</item>
		
			<item>
			<link>https://kanoe.cn/article/gis/156.htm</link>
			<title><![CDATA[在IIS 发布Web App时使用ArcGIS Server Local services注意事项]]></title>
			<author>master@kanoe.cn(独木舟)</author>
			<category><![CDATA[GIS]]></category>
			<pubDate>Tue,24 Mar 2009 21:08:27 +0800</pubDate>
			<guid>https://kanoe.cn/default.asp?id=156</guid>
		<description><![CDATA[<p>部署Web App时遇到问题，在ESRI bbs上提问贴如下：</p>
<p><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7890&amp;extra=###"><em><font color="#1d58d1">Server DotNET ADF部署问题</font></em></a></p>
<p><em><u>请教Server9.2 .NET ADF开发的应用得部署问题。<br />
在VS2005中调试时运行正常，但是部署到iis6，或者放到iis6中调试，总是异常。<br />
跟踪后发现：连接arcgis server服务器异常，但是我已经把aps.net的帐户加到arcgisuser组，为何连接不上，配置中有什么要点吗？<br />
另外我的dotnet ADF的帮助中ms-help://MS.VSCC.v80/MS.VSIPCC.v80/ESRI.EDNv9.2/NET_ADF/developer/ADF/deployment.htm（拷到IE中就可以导航过去）<br />
一般正常一半后边是乱码，咋回事？拷贝到其他编辑器中后就是正常的。</u></em></p>
<p>仔细阅读文档发现:</p>
<p>ms-help://MS.VSCC.v80/MS.VSIPCC.v80/ESRI.EDNv9.2/NET_ADF/developer/ADF/deployment.htm最后一段讲道：</p>
<p>To update the ArcGIS Identity</p>
<p>If your Web Mapping Application uses ArcGIS Server Local services, an identity is stored in the website for accessing those services. If a different GIS server or ArcGIS user is used for deployment than for development, you will need to update the identity. This is true even if you use a domain account for the identity and the production computer is a member of the domain.</p>
<p>To update the ArcGIS identity, see instructions in the Help page ASP.NET Identity and Impersonation.</p>
<p>Google+MSDN 关键字&ldquo;ASP.NET Identity and Impersonation &rdquo;后问题解决：</p>
<p>主要是需要在asp.net中模拟操作系统用户，在web.config的&lt;system.web&gt;节下增加：</p>
<p>&lt;identity impersonate=&quot;true&quot; userName=&quot;account&quot; password=&quot;pass&quot; /&gt;</p>
<p>即可。</p>
<p>参考：</p>
<p>1、<a href="http://www.cnblogs.com/perky_zhou/archive/2004/12/13/76204.html"><font color="#1d58d1">通过ASP.net程序创建域帐户故障</font></a><br />
2、<a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7890&amp;extra=###"><font color="#1d58d1">Server DotNET ADF部署问题</font></a></p>]]></description>
		</item>
		
			<item>
			<link>https://kanoe.cn/article/gis/ArcEngineLicenseInit.htm</link>
			<title><![CDATA[ArcGIS Engine许可初始化]]></title>
			<author>master@kanoe.cn(独木舟)</author>
			<category><![CDATA[GIS]]></category>
			<pubDate>Tue,10 Mar 2009 12:55:23 +0800</pubDate>
			<guid>https://kanoe.cn/default.asp?id=152</guid>
		<description><![CDATA[今天写数据入库<br/>运行到pFeatureWorkspace.Cr&#101;ateFeatureClass()，就报错：The application is not licensed to cr&#101;ate o&#114; modify schema for this type of data<br/>原来是license 要初始化<br/><br/>关于初始化Engine许可的，其实原理都很简单，大家一般都没有问题，但又往往会因为不够细心加上Engine的“小脾气”，让不少程序员都要在这里犯错。<br/>以Engine9.2为例，应用程序是强制初始化许可，也就是说必须使用LicenseControl或AO接口初始化许可，否则应用程序无法启动。 Engine9.1未采取强制初始化许可策略，而是应用程序创建时就初始化标准Engine许可。在一般情况下，我们会用将LicenseControl 拖放到主窗体上完成初始化。但当Engine程序需要使用ArcGIS Engine Enterprise Geodatabase（以下简称GDB Up&#100;ate）许可的时候，我们就往往会由于意识不到应该使用该许可，以及无法正确的初始化该许可而陷入麻烦。<br/><strong>注意：</strong>以下所探讨的所有“许可”并不包括扩展模块许可，如三维分析、空间分析和网络分析；而只是包括Engine可使用的Engine标准许可、Engine GDB Up&#100;ate许可、ArcView许可、ArcEditor许可和ArcInfo许可五种。<br/>问题分为三方面：<br/>1．什么情况下需要GDB Up&#100;ate许可<br/>当需要对SDE里数据进行编辑时，以及需要在SDE和Personal Geodatabase中创建复杂ArcGIS对象时，我们需要使用GDB Up&#100;ate许可。<br/>对SDE里的数据编辑，很好理解，大致就是进行数据插入，删除，更新；对表添加、删除和修改，表结构的变化（添加、删除列）等，因为这些动作都会造成后台数据库的写操作。<br/>对于Personal Geodatabase，进行简单数据对象和编辑，包括创建、删除和修改普通表都是不需要GDB Up&#100;ate许可的，但对于复杂的Geodatabse对象的创建、删除和修改，则需要GDB Up&#100;ate许可，其中复杂的Geodatabse对象包括几何网络，网络分析模型，拓扑，关系类。这也是为什么往往有些经验的程序员写好了一个创建几何网络或拓扑的程序后，执行起来会被报“需要Geodatabase Up&#100;ate许可”的错。<br/> <br/>2．怎样初始化GDB Up&#100;ate许可<br/>当我们意识到需要使用Engine的GDB Up&#100;ate许可时，怎样才能将它正确的初始化呢？Engine给我们提供了两种初始化许可的方法：<br/>1)使用LicenseControl控件。将该控件拖放到主窗体之上，勾选适当的许可，并确保程序启动该窗体可加载，就可以完成许可初始化。如下图：<br/><img src="http://static9.photo.sina.com.cn/bmiddle/4ad115cba8d8f8da2df48" border="0" alt=""/><br/>2)使用IAoInitialize.Initialize方法加入适当的参数进行初始化。VB6的例子代码如下：<br/>Option Explicit<br/>Dim m_pAoInitialize As IAoInitialize<br/>Private Sub Form_Load()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;实例化<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set m_pAoInitialize = New AoInitialize<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;初始化 EngineGeoDB 许可<br/>&nbsp;&nbsp;&nbsp;&nbsp;Call m_pAoInitialize.Initialize(esriLicenseProductCodeEngineGeoDB)<br/>End Sub<br/> <br/>当然，对于一个健壮的程序而言，我们还需要在初始化之前先判断将被初始化的许可是否可用，应先使用IsProductCodeAvailable方法进行判断，需要初始化扩展模块的许可，可使用CheckOutExtension方法。<br/> <br/>3．初始化过程中容易犯的错误<br/>我们应该注意到，Engine是有些“小脾气”的。如果没有按照它的“习惯”，它是不会为我们乖乖工作的。其中有个很重要的原则（以下简称“重要原则”）就是一个程序只能初始化许可一次，已经初始化许可的程序一旦运行就无法再修改其初始化的许可，即程序运行期间无法修改其使用的许可。<br/>1)LicenseControl和IAoInitialize接口两种初始化方法，一个应用程序中只能使用一种方法，如果两种一起使用，哪一个“说得算”就不一定了。如果这两种方式同时使用，且两种初始化的许可级别一样时，也许我们感觉不到什么不对，但当我们需要修改初始化许可级别，而又只改了一种初始化方法却忘记了另一种，根据“重要原则”可知，这次修改初始化很可能无法生效。<br/>2)使用LicenseControl初始化时，当我们将其拖放到窗体上时，它往往会自动勾选“ArcGIS Engine”许可，也就是自动初始化标准Engine许可。但当我们需要通过它更改许可级别时，Engine9.2会提示如下信息：<br/><img src="http://static2.photo.sina.com.cn/bmiddle/4ad115cbdc86b6c33c1e1" border="0" alt=""/><br/>该信息的含义是警告我们该程序已经初始化了Engine标准许可，若要初始化其他许可，重启开发环境后才会生效。对这句话的解释是，如果我们想通过 LicenseControl初始化其他级别的Engine许可，需要在勾选其他许可之后关闭开发环境（如图为VB6）再打开才生效，否则还是原来的许可。另外，对于Engine9.1，此种情况下没有该警告，问题会更隐蔽（无语吧 -_-!）。<br/> <br/>3)LicenseControl中多选许可是没有意义的，第一个被勾选的许可生效。如下图：<br/><img src="http://static12.photo.sina.com.cn/bmiddle/4ad115cbdd0fd87dda9db" border="0" alt=""/><br/>这种情况下，实际上该应用程序初始化的是Engine标准许可，而不是其他。虽然LicneseControl从操作上可以让用户多选许可，但并不代表它会将您勾选的许可全部签出。另外，这些许可都是有对应和包含关系的。其中ArcGIS Engine与ArcView是对应的，ArcGIS Engine Enterprise Geodatabase与ArcEditor是对应的；ArcGIS Engine Enterprise Geodatabase是包含ArcGIS Engine许可的。当我们需要GDB Up&#100;ate许可的时候，仅仅需要勾选ArcGIS Engine Enterprise Geodatabase即可，为了“保险起见”勾选上其他许可反而会弄巧成拙。<br/> <br/>使用IAoInitialize接口进行初始化，Initialize方法只能调用一次，多余的调用是不会生效的，道理就像上面LicenseControl勾选了多个许可一样。]]></description>
		</item>
		
			<item>
			<link>https://kanoe.cn/article/gis/GISCourse.htm</link>
			<title><![CDATA[GIS大讲堂内所有讲座的索引(转)]]></title>
			<author>master@kanoe.cn(独木舟)</author>
			<category><![CDATA[GIS]]></category>
			<pubDate>Sun,08 Mar 2009 13:12:06 +0800</pubDate>
			<guid>https://kanoe.cn/default.asp?id=150</guid>
		<description><![CDATA[原文： <a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6210" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6210</a>&amp;extra=page%3D1<br/><br/>GIS大讲堂内所有讲座的索引（更新至2008年6月26日）<br/>&nbsp;&nbsp;&nbsp;&nbsp;GIS大讲堂自开讲以来，得到很多朋友的热烈关注。快乐的日光，CJ，北斗星，lxl，Arcxman ，JoyceZhu，yangxp_521，bathymetry，骆驼人，豆豆等同志花费大量精力，为我们奉献了精彩的讲座，在此对他们的辛勤工作表示感谢。&nbsp;&nbsp;&nbsp;&nbsp;我们翘首期待他们为我们奉献更多的精彩讲座吧！&nbsp;&nbsp;也欢迎更多的朋友加入GIS大讲堂，为大讲堂的建设添砖加瓦，让它变成GIS Fans的乐园吧！<br/>&nbsp;&nbsp;&nbsp;&nbsp; 为了方便大家的阅读，特将大讲堂开讲以来的所有讲座内容的索引整理如下：<br/><br/>讲座一：Server Java讲座<br/>主讲人：CJ<br/>第一讲 前言------为什么我们选择JSF，而不是其它framework<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3695" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3695</a>&amp;extra=page%3D4<br/>第二讲 JSF基础<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3734" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3734</a>&amp;extra=page%3D5<br/>第三讲&nbsp;&nbsp;ADF 体系结构 第一部分<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3800" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3800</a>&amp;extra=page%3D6<br/>第四讲&nbsp;&nbsp;自定义command<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3882" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3882</a>&amp;extra=page%3D4<br/>第五讲&nbsp;&nbsp;自定义Tools开发<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4730" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4730</a>&amp;extra=page%3D4<br/>第六讲&nbsp;&nbsp;实现后台JSF Bean和前台Javascript的联动<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3907" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3907</a>&amp;extra=page%3D6<br/>第七讲&nbsp;&nbsp;AJAX基础<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3944" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3944</a>&amp;extra=page%3D6<br/>第八讲&nbsp;&nbsp;ADF中的Ajax函数<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3946" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3946</a>&amp;extra=page%3D6<br/>第九讲&nbsp;&nbsp;如何在用JSF在服务器端处理Ajax请求<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3951" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3951</a>&amp;extra=page%3D6<br/>第十讲&nbsp;&nbsp;用Ajax得到地图比例尺(客户端代码)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3958" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3958</a>&amp;extra=page%3D6<br/>第十一讲&nbsp;&nbsp;利用Ajax得到当前地图的比例尺（服务器端）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3957" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3957</a>&amp;extra=page%3D6<br/>第十二讲&nbsp;&nbsp;扩展Tasks框架(一)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4396" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4396</a>&amp;extra=page%3D5<br/>第十三讲&nbsp;&nbsp;Task框架扩展之Taskinfo<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4555" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4555</a>&amp;extra=page%3D2<br/>第十四讲&nbsp;&nbsp;自定义Functionality<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4135" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4135</a>&amp;extra=page%3D5<br/>第十五讲&nbsp;&nbsp;用自定义functionality实现用户权限控制<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4175" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4175</a>&amp;extra=page%3D5<br/>第十六讲&nbsp;&nbsp;使用图片和TrueType字体进行标注<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5610" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5610</a>&amp;extra=page%3D3<br/>第十七讲&nbsp;&nbsp;空间查询和高亮显示的实现<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5218" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5218</a>&amp;extra=page%3D2<br/>第十八讲 动态添加图层数据<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=14150" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=14150</a>&amp;extra=page%3D6<br/><br/>讲座二：Server Java开发--Born for SOA系列<br/>主讲人：CJ<br/>第一讲 Born for SOA系列 前言<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=8953" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=8953</a>&amp;extra=page%3D4<br/>第二讲 Web Service基础<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=8955" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=8955</a>&amp;extra=page%3D1<br/>第三讲 ADF中访问Web Services的类<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9279" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9279</a>&amp;extra=page%3D1<br/>第四讲 ArcGIS Server实现SOA<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9462" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9462</a>&amp;extra=page%3D3<br/>第五讲 Server对于SOAP的支持<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9028" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9028</a>&amp;extra=page%3D4<br/>第六讲 通过代理类访问ArcGIS Server Web Service<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9093" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9093</a>&amp;extra=page%3D4<br/><br/>讲座三：使用ArcGIS Engine 开发自定义GIS应用<br/>主讲人：北斗星<br/>第一讲 使用ArcGIS Engine 发布自定义GIS应用软件-全面了解ArcGIS Engine的产品。<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3883" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3883</a>&amp;extra=page%3D1<br/>第二讲&nbsp;&nbsp;ArcGIS Engine9.2特性和变化<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3892" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3892</a>&amp;extra=page%3D3<br/>　　　(续)--类对比及变化<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3905" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3905</a>&amp;extra=page%3D3<br/>　　　(续)--(代码转换插件)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3893" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3893</a>&amp;extra=page%3D3<br/>　　　(续)--ArcEngine新命令,工具、菜单和面板<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4028" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4028</a>&amp;extra=page%3D6<br/>第三讲 使用 ArcGIS Engine开发应用程序（自定义或嵌入）.<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4029" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4029</a>&amp;extra=page%3D1<br/>第四讲 开发 Engine 应用程序的基本原理<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4234" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4234</a>&amp;extra=page%3D1<br/>　　　(续)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4438" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4438</a>&amp;extra=page%3D3<br/>第五讲 关于mapping Controls的开发<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4758" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4758</a>&amp;extra=page%3D3<br/>　　　（续）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5192" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5192</a>&amp;extra=page%3D1<br/>第六讲：3D controls的开发与配置<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5719" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5719</a>&amp;extra=page%3D1<br/>　　　(续实例)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6115" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6115</a>&amp;extra=page%3D1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （续实例二）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6656" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6656</a>&amp;extra=page%3D1<br/>第七讲：定制并扩展控件<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6808" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6808</a>&amp;extra=page%3D1<br/>第八讲：配置 ArcGIS Engine 程序<br/><br/>讲座四：如何考虑一个GIS项目——对GIS进行规划<br/>主讲人：快乐的日光<br/>第一讲　如何考虑一个GIS项目——对GIS进行规划（一）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3602" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3602</a>&amp;extra=page%3D1<br/>第二讲　如何考虑一个GIS项目——对GIS进行规划（二）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3657" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3657</a>&amp;extra=page%3D2<br/>第三讲　如何考虑一个GIS项目——对GIS进行规划（三）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3956" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3956</a>&amp;extra=page%3D3<br/>第四讲　如何考虑一个GIS项目——对GIS进行规划（四）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6545" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6545</a>&amp;extra=page%3D1<br/>第五讲&nbsp;&nbsp; 如何考虑一个GIS项目——对GIS进行规划（五）（A）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=18498" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=18498</a>&amp;highlight=<br/><br/>讲座五：Geodatabase and ArcSDE系列讲座<br/>主讲人：萝卜兔子<br/>前言<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3778" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3778</a>&amp;extra=page%3D4<br/>第一讲 Geodatabase的基础知识<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3779" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3779</a>&amp;extra=page%3D1<br/>　　　 Geodatabase的基础知识（续）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3780" target="_blank" rel="external"><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3780" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3780</a></a>&amp;extra=page%3D2<br/>第二讲 Geodatabase data Storage and schema<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3780" target="_blank" rel="external"><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3780" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3780</a></a>&amp;extra=page%3D1<br/>第三讲 管理File 和Personal Geodatabase<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3918" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3918</a>&amp;extra=page%3D1<br/>第四讲 Versioning（版本）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3920" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3920</a>&amp;extra=page%3D1<br/>第五讲 Geodatabase Archiving（历史数据归档）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3921" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3921</a>&amp;extra=page%3D1<br/>第六讲 Geodatabase Distribution（空间数据库的复制）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3976" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3976</a>&amp;extra=page%3D1<br/>第七讲 Working With a Geodatabase Using SQL<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4095" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4095</a>&amp;extra=page%3D1<br/>第八讲　Data Server操作步骤<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4373" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4373</a>&amp;extra=page%3D2<br/>讲座六：时态GIS<br/>By 萝卜兔子<br/>综述<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4525" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4525</a>&amp;extra=page%3D1<br/>时态GIS的重要意义以及研究进展<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5015" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5015</a>&amp;extra=page%3D1&nbsp;&nbsp;&nbsp;&nbsp; <br/>第一讲 时间数据的存储格式NetCDF<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4538" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4538</a>&amp;extra=page%3D1<br/>&nbsp;&nbsp;&nbsp;&nbsp; 附（By bathymetry ）：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netCDF资料一<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4543" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4543</a>&amp;extra=page%3D5<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netCDF资料二<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4544" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4544</a>&amp;extra=page%3D5<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netCDF资料三<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4546" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4546</a>&amp;extra=page%3D5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>第二讲 历史数据归档<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4742" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4742</a>&amp;extra=page%3D1<br/>第三讲 多维数据图表<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4994" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4994</a>&amp;extra=page%3D1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>第四讲 时间动画 <br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5486" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5486</a>&amp;extra=page%3D1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>第五讲 历史追踪分析<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5747" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5747</a>&amp;extra=page%3D1<br/>第六讲 实时数据获取<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6760" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6760</a>&amp;extra=page%3D1<br/>第七讲 时空数据建模<br/>第八讲 3D环境下的时态GIS应用介绍<br/><br/>讲座七：ArcGIS地理处理<br/>主讲人：lxl<br/>第一讲　什么是地理处理?<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4818" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4818</a>&amp;extra=page%3D3<br/>第二讲　ArcToolbox简介<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4991" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4991</a>&amp;extra=page%3D3<br/>第三讲 Model Builder<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7101" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7101</a>&amp;extra=page%3D1<br/>第四讲 地理处理脚本<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7192" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7192</a>&amp;extra=page%3D1<br/>第五讲 命令窗口基础<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7204" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7204</a>&amp;extra=page%3D1<br/>第六讲 共享地理处理<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7241" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7241</a>&amp;extra=page%3D1<br/><br/>讲座八：制图表达<br/>主讲人：Arcxman<br/>第一讲　制图表达资料大全（一）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4980" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4980</a>&amp;extra=page%3D3<br/>第二讲　制图表达资料大全（二）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4987" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4987</a>&amp;extra=page%3D3<br/><br/>讲座九：网络分析<br/>主讲人：JoyceZhu<br/>ArcGIS的网络分析<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4314" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4314</a>&amp;extra=page%3D3<br/><br/>讲座十：ArcGIS Server .Net<br/>主讲人：Jueery<br/>第一讲 ArcGIS Server9.2基础内容<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6470" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6470</a>&amp;extra=page%3D2<br/>第二讲 ArcGIS Server .Net Web ADF体系结构<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6659" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6659</a>&amp;extra=page%3D1<br/>第三讲 ArcGIS Server .Net Web ADF之几何类型的相互转换<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7423" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7423</a>&amp;extra=page%3D1<br/>第四讲 ArcGIS Server .Net ADF中的编辑功能(一)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9576" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9576</a>&amp;extra=page%3D2<br/>第五讲 ArcGIS Server .Net ADF中的编辑功能(二)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9667" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9667</a>&amp;extra=page%3D3<br/>第六讲 ArcGIS Server性能调整<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9774" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=9774</a>&amp;extra=page%3D3<br/><br/>讲座十一：3D分析<br/>主讲人：IsNotNull<br/>ArcGlobe与ArcScene功能比较和简单说明<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6717" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6717</a>&amp;extra=page%3D1<br/><br/>讲座十二:ArcGIS Engine 92 SDK for Java<br/>主讲人:flyingis<br/>第一讲 最小示例学习<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6478" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6478</a>&amp;extra=page%3D2<br/>第二讲 窗体简例<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6516" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=6516</a>&amp;extra=page%3D3<br/>第三讲 学习在ArcEngine中使用Geoprocessing<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7751" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7751</a>&amp;extra=page%3D1<br/>第四讲 Geoprocessing 数据批处理<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7977" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=7977</a>&amp;extra=page%3D2<br/><br/>讲座十三：ArcGIS物流配送<br/>主讲人：北斗星<br/>第一讲 ArcGIS物流配送之--ArcLogistics Route（第一部分）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=12105" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=12105</a>&amp;extra=page%3D7<br/>第二讲 ArcGIS物流配送之--ArcLogistics Route（第二部分）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=12605" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=12605</a>&amp;extra=page%3D4<br/>第三讲 ArcGIS物流配送之--ArcLogistics Route（第三部分）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=14824" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=14824</a>&amp;extra=page%3D4<br/>第四讲 ArcGIS物流配送之--ArcLogistics Route（第四部分）<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=14827" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=14827</a>&amp;extra=page%3D6<br/><br/>讲座十四：server geoprocessing系列讲座<br/>主讲人：CJ<br/>预告<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19331" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19331</a>&amp;highlight=<br/>第一讲 如何构建并使用GeoProcessing Service<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19481" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19481</a>&amp;highlight=<br/>第二讲 使用Web Service接口对GP Server进行访问<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19546" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19546</a>&amp;highlight=<br/>第三讲 使用Web Service接口对GP Server进行访问--得到参数信息<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19572" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19572</a>&amp;highlight=<br/>第四讲 使用Web Service接口对GP Server进行访问--运行tool<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19583" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19583</a>&amp;highlight=<br/>第五讲 使用Web Service接口对GP Server进行访问--利用Python代码重构参数<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19702" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=19702</a>&amp;highlight=<br/><br/>讲座十五：ArcGIS Server .Net ADF开发系列讲座<br/>主讲人：Jueery<br/>第一讲 ArcGIS Server .Net ADF中的AJAX(一)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21385" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21385</a>&amp;highlight=<br/>第二讲 ArcGIS Server .Net ADF中的AJAX(二)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21387" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21387</a>&amp;highlight=<br/>第三讲 ArcGIS Server .Net Web ADF的AJAX(二)续<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21513" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21513</a>&amp;highlight=<br/>第四讲 ArcGIS Server .Net ADF中的AJAX(三)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21391" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21391</a>&amp;highlight=<br/>第五讲 ArcGIS Server .Net ADF中的Geoprocessing(一)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21514" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21514</a>&amp;highlight=<br/>第六讲 ArcGIS Server .Net ADF中Geoprocessing(二)<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21515" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21515</a>&amp;highlight=<br/><br/>讲座十六：GIS在开发空间型CRM中的应用<br/>主讲人： qjhli2007 (苍鹰)<br/>预告篇<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21995" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21995</a>&amp;highlight=<br/>第一讲 ERP篇<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22239" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22239</a>&amp;highlight=<br/>第二讲 CRM篇之理论篇<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22696" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22696</a>&amp;highlight=<br/>第三讲 CRM篇之实例篇<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22779" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22779</a>&amp;highlight=<br/>第四讲 ERP篇之理论篇<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22993" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22993</a>&amp;highlight=<br/><br/>讲座十七：ArcGIS Server 开发系列<br/>主讲人：flyingis<br/>第一讲：编程框架总览<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22547" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22547</a>&amp;highlight=<br/>第二讲：Web ADF 编程<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22548" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22548</a>&amp;highlight=<br/>第三讲：漫游 Graphics data sources<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22549" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22549</a>&amp;highlight=<br/>第四讲：ArcGIS Server data sources 开发<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22550" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22550</a>&amp;highlight=<br/>第五讲：自定义 Toolbar 工具<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22551" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22551</a>&amp;highlight=<br/>第六讲：自定义 Tasks<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22553" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22553</a>&amp;highlight=<br/>第七讲：.Net Web ADF 应用中的安全技术<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21312" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=21312</a>&amp;highlight=<br/><br/>讲座十八：arcgis server 9.2代码阅读<br/>By：jiyanliang<br/>笔记一：在图层中增加一个点<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=17906" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=17906</a>&amp;highlight=<br/>笔记二：在页面上动态加载图层<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=17945" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=17945</a>&amp;highlight=<br/><br/>其它内容：<br/>随堂测试<br/>By 快乐的日光 yangxp_521&nbsp;&nbsp;bathymetry<br/>之一：使用GIS进行灾害评价<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3972" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=3972</a>&amp;extra=page%3D4<br/>之二：sel&#101;ction<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4144" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4144</a>&amp;extra=page%3D1<br/>之三：简单查询<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4518" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=4518</a>&amp;extra=page%3D1<br/>之四：拓扑<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5060" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5060</a>&amp;extra=page%3D4<br/>五：寻找合适的厂址<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5315" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5315</a>&amp;extra=page%3D2<br/>之六：新学校选址<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5634" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5634</a>&amp;extra=page%3D1<br/><br/>ArcGIS类似QQ，MSN的实时消息扩展模块：GeoChat<br/>By 萝卜兔子<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=17312" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=17312</a>&amp;extra=page%3D1<br/><br/>arcgis 学习笔记--arcgis mobile<br/>By：jiyanliang<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=20424" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=20424</a>&amp;highlight=<br/><br/>坐标系统与投影变换及在桌面产品中的应用<br/>By：gis27<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=20853" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=20853</a>&amp;highlight=<br/><br/>ArcGIS中的标注与注记（Label与Annotation）关系与区别讲解<br/>By：donballking<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=18180" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=18180</a>&amp;highlight=<br/><br/>在ArcGIS 9中进行空间统计<br/>By：donballking<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=18273" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=18273</a>&amp;highlight=<br/><br/>空间插值方法汇总<br/>By：xiaolin1983<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=23183" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=23183</a>&amp;highlight=<br/><br/>Geoprocessing学习概述(转)<br/>By：xiaolin1983<br/><a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22416" target="_blank" rel="external">http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22416</a>&amp;highlight=<br/><br/>特别推荐：<br/>ArcGIS服务器产品版块精选文章荟萃:<br/><a href="http://bbs.esrichina-bj.cn/esri/viewthread.php?tid=6069" target="_blank" rel="external">http://bbs.esrichina-bj.cn/esri/viewthread.php?tid=6069</a>]]></description>
		</item>
		
			<item>
			<link>https://kanoe.cn/article/gis/NewShapeFile.htm</link>
			<title><![CDATA[新建shp文件]]></title>
			<author>master@kanoe.cn(独木舟)</author>
			<category><![CDATA[GIS]]></category>
			<pubDate>Sun,08 Mar 2009 11:38:41 +0800</pubDate>
			<guid>https://kanoe.cn/default.asp?id=149</guid>
		<description><![CDATA[<textarea name="code" class="vb">Public Sub CreatShapeFile(ByVal sFilePath As String, ByVal sFileName As String)     '创建shapefile层文件
On Error GoTo Errhandle:
    Dim pWorkspaceFactory As IWorkspaceFactory
    Dim pFeatureWorkspace As IFeatureWorkspace
    Dim pFields As IFields
    Dim pFieldsEdit As IFieldsEdit
    Dim pField As IField
    Dim pFieldEdit As IFieldEdit
    Dim pGeometryDef As IGeometryDef
    Dim pGeometryDefEdit As IGeometryDefEdit
    Dim pFeatClass As IFeatureClass
    Dim sShapeFieldName As String
    Dim sNewShapeFileName As String

    sNewShapeFileName = Dir(sFilePath &amp; &#34;\&#34; &amp; sFileName &amp; &#34;.shp&#34;)
    If (sNewShapeFileName <> &#34;&#34;) Then
             MsgBox (&#34;文件已经存在&#34;)
        Exit Sub
    End If
    sShapeFieldName = &#34;Shape&#34;                                '先创建一个字段名字
    '创建一个文件夹来存放shapefile文件
    Set pWorkspaceFactory = New ShapefileWorkspaceFactory
    Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(sFilePath, 0)
   
    'Set up a simple fields collection
    Set pFields = New esriGeoDatabase.Fields
    Set pFieldsEdit = pFields
    'Make the shape field
    'it will need a geometry definition, with a spatial reference
    Set pField = New esriGeoDatabase.Field
    Set pFieldEdit = pField
    '创建第一个字段
    pFieldEdit.Name = sShapeFieldName
    pFieldEdit.Type = esriFieldTypeGeometry
    Set pGeometryDef = New GeometryDef
    Set pGeometryDefEdit = pGeometryDef
    With pGeometryDefEdit
    .GeometryType = esriGeometryPolygon
    Set .SpatialReference = New UnknownCoordinateSystem
    End With
    Set pFieldEdit.GeometryDef = pGeometryDef
    pFieldsEdit.AddField pField               '添加字段到字段集中
    '再添加一个字段
    Set pField = New esriGeoDatabase.Field
    Set pFieldEdit = pField
    With pFieldEdit
        .Name = &#34;type&#34;
        .Type = esriFieldTypeString
    End With
    pFieldsEdit.AddField pField               '添加字段到字段集中
    '开始创建shapefile层文件
    'some parameters apply to geodatabase options 
      'and can be defaulted as Nothing
    Set pFeatClass = pFeatureWorkspace.Cr&#101;ateFeatureClass _
    (sFileName, pFields, Nothing, Nothing, _
    esriFTSimple, sShapeFieldName, &#34;&#34;)
'    sNewShapeFileName = Dir(sFilePath &amp; &#34;\&#34; &amp; sFileName &amp; &#34;.shp&#34;)
'      If (sNewShapeFileName = &#34;&#34;) Then
'        MsgBox (&#34;Build Fail&#34;)
'    Else
'        MsgBox (&#34;Build Success&#34;)
'    End If
Errhandle:
    Set pFeatClass = Nothing
    Set pGeometryDefEdit = Nothing
    Set pGeometryDef = Nothing
    Set pFieldEdit = Nothing
    Set pField = Nothing
    Set pFieldsEdit = Nothing
    Set pFields = Nothing
    Set pFeatureWorkspace = Nothing
    Set pWorkspaceFactory = Nothing


    If Err.Description <> &#34;&#34; Then
    MsgBox Err.Description &amp; &#34;：创建shapefile失败！&#34;, vbInformation, &#34;提示信息&#34;
    End If
End Sub</textarea>]]></description>
		</item>
		
			<item>
			<link>https://kanoe.cn/article/gis/135.htm</link>
			<title><![CDATA[Utility functions]]></title>
			<author>master@kanoe.cn(独木舟)</author>
			<category><![CDATA[GIS]]></category>
			<pubDate>Mon,23 Feb 2009 21:09:15 +0800</pubDate>
			<guid>https://kanoe.cn/default.asp?id=135</guid>
		<description><![CDATA[<textarea name="code" class="vb">'******************************************************************
'***********                        ***********************************
'********       Utility functions       ******************************
'***********                        ***********************************
'******************************************************************

Public Function MakeNewTemplate(Optional dMark As Double = 10, Optional dGap As Double = 20) As ITemplate
  Set MakeNewTemplate = New Template
  MakeNewTemplate.AddPatternElement m_dSize, m_dSize * 2
  MakeNewTemplate.Interval = 1 'm_dSize * 3
End Function

Public Sub SetStdLineProperties(ByRef pLineProps As ILineProperties, ByVal dMark As Double, ByVal dGap As Double)
  If Not pLineProps Is Nothing Then
    With pLineProps
      Set .Template = MakeNewTemplate(dMark, dGap)
    End With
  End If
End Sub

Public Function MakeStdFont(Optional ByVal sName As String = &#34;ESRI Default Marker&#34;) As StdFont
  Set MakeStdFont = New stdole.StdFont
  MakeStdFont.Name = sName
End Function

Public Sub SetSymArrayMarkers(ByRef pArray As ISymbolArray)
  Dim pMarker As ISimpleMarkerSymbol
  Set pMarker = New SimpleMarkerSymbol
  pMarker.Color = RandomColor
  pMarker.Style = esriSMSCircle
  pArray.AddSymbol pMarker
  Set pMarker = New SimpleMarkerSymbol
  pMarker.Color = RandomColor
  pMarker.Style = esriSMSCross
  pArray.AddSymbol pMarker
    
End Sub

Public Sub SetSymArrayFills(ByRef pArray As ISymbolArray)
  Dim pFill As ISimpleFillSymbol
  Set pFill = New SimpleFillSymbol
  pFill.Color = RandomColor
  pFill.Style = esriSFSSolid
  pArray.AddSymbol pFill
  Set pFill = New SimpleFillSymbol
  pFill.Color = RandomColor
  pFill.Style = esriSFSSolid
  pArray.AddSymbol pFill
    
End Sub

Public Function RandomColor() As IColor
  Randomize

  Set RandomColor = New RgbColor
  RandomColor.RGB = CLng((16777214) * Rnd + 1)
End Function

Public Function MakeNewRamp() As IColorRamp
  Dim pRamp As IAlgorithmicColorRamp, pColor As IColor
  Set pRamp = New AlgorithmicColorRamp
  pRamp.FromColor = RandomColor
  pRamp.ToColor = RandomColor
  pRamp.Algorithm = esriLabLChAlgorithm
  
  Set MakeNewRamp = pRamp
End Function</textarea>]]></description>
		</item>
		
</channel>
</rss>
