文档库 最新最全的文档下载
当前位置:文档库 › ArcGis Server开发Web GIS入门教程

ArcGis Server开发Web GIS入门教程

ArcGis Server开发Web GIS入门教程
ArcGis Server开发Web GIS入门教程

(以下针对于windows操作系统.net开发环境)

ArcGIS Server是ESRI公司最新推出的服务器端品,主要可以实现两大功能:1、强大的Web GIS系统的开发;

2、分布式GIS系统的开发;

ArcGIS Server其内核与ArcGIS Desktop和ArcGIS Engine一样,都是ArcObjects库。其所谓的Web GIS,其实无非就是用Web技术来封装ArcObjects而已;而分布式的开发则是通过DCOM来实现的。

小弟前几个月搞了一下ArcIMS,发觉开发起来确实痛苦啊,整天就是折腾

javascript+arcxml,郁闷死了,听闻有ArcGIS Server这种好东西,稍稍了解一下,便向老板建议转向ArcGIS Server,老板居然同意了。于是便开发学习了。网上四下里找了一下,发现可用的资源非常少,只好自己琢磨。从零开始真不容易啊,这不,刚上手就碰到了两个问题,好在都已经解决,现在写下来,希望对和我一样的新手有所帮助。

ArcGIS Server的安装非常简单,先安装ArcGIS Server,然后安装DotNet ADF,最后用ArcCatelog添加一个Server,然后再添加一个ServerObject,这样就可以进行开发了。这里的ServerObject与ArcIMS中的Service很像,其实应该是一个概念上的东西吧。添加一个ServerObject需要一个mxd或pmf文件,用来保存和管理需要发布的数据。

好了,现在可以开始开发了。

打开Visual Studio 2003,打开新建项目对话框,发现ESRI公司已经为我们准备好了一些ArcGIS Server Projects的模板,包括Map Viewer Web Application,Page Layout Web Applicaiton等等,我们就建一个Map Viewer Web Application吧,选中它,输入项目名称,然后点击“确定”按钮,我们发现一个已经包含了基本数据浏览和查询功能的Web GIS程序已经建好了。

好,打开Default.aspx文件,发现网页包含一个Map组件,一个Toolbar组件,一个TOC 组件,一个OverviewMap组件等等。看来与C/S开发模式下很像嘛,爽啊。其中Map组件和OverviewMap组件有两个必填属性:Host和ServerObject,就分别对应着我们在ArcCatelog 中添加的的Server和ServerObject,输入它。然后设置TOC组件和Toolbar组件的Buddy

属性,OK,大功告成!

运行!咦,发生错误,定睛一看,原来是访问拒绝,这是怎么回事呢?记得以前看到一篇文章,说在https://www.wendangku.net/doc/8515621309.html,中使用COM组件,经常由于权限原因,产生访问拒绝,而ArcGIS Server 本身就是对ArcObjects这些COM组件的再封装,看来就是这么回事了。找出这篇文章来,原来要在Web.config中加入一行就可以了:

再运行,哇塞,酷毙了,一个漂亮的WebGIS展现在眼前。可以浏览,查询,图层管理,鹰眼导航,还有指北针...

(后来发现页面上还一个组件叫impersonation没用上,看了一下它的属性,只有一个identity,点击它,你会发现...呵呵,原来这个组件就是用来干这个事的,晕,又浪费了我两个小时的宝贵时间...)

一行代码都不用写,爽。可是又很失落,心里没有底,这个Web GIS究竟是怎样实现

的呢?

我们知道,.net adf提供的map组件、toc组件等都是标准的https://www.wendangku.net/doc/8515621309.html,组件。这些组件在运行时,会生成相应的html代码,将自己展现出来。一般还会通过ViewState来保存状态,并生成_doPostBack(javascript)函数,在必要的时候,通过javascript来调用该函数,将客户端数据返回来服务器端,从而激发服务器的响应。总之,我们通过分析生成的html页面,应该可以大致窥见https://www.wendangku.net/doc/8515621309.html,组件是怎么运行的。

好,我们现在按F5运行首页,然后在浏览器中查看网页的源代码,赶快看下一吧:

1、首先会看到ID,MapIdClick,start等javascript函数,这些函数是模板为我们生成的,在default.aspx文件中定义的。ID函数中有两行:

variddiv = document.getElementByIdx("MapDiv_Map1");

if (iddiv!=null) iddiv.onmousedown = MapIdClick;

可以看到,这几个函数的作用是对地图的Identify(点击查询)作出处理。

为什么要放在这里呢,为什么单单只有点击查询的javascript要在这里定义呢,其它如放大、缩小、平移为什么不在这里处理?这是因为Toolbar组件对放大、缩小、平移等提供了默认的处理方式,而identify没有,这样可以更方便进行扩展。在后面的代码中有一行

,可以看到,这个调用是模板为我们生成的(并且这个调用是可以修改的)。待会我们在进一步分析中可以看到这一点。

2、再向下,是几个隐藏域,其中包含__VIEWSTATE隐藏域,还有__doPostBack函数,这些是https://www.wendangku.net/doc/8515621309.html,组件生成的,作用是向服务器提交数据,从而与服务器进行交互。

3、往下我们看到了一些引入js脚本文件的代码:

可以看到,共引入了四个js脚本文件,这些文件的地址也比较奇怪,不是与当前网站在同一个虚拟目录下,而是在

http://localhost//aspnet_client/esri_arcgis_server_webcontrols/9_1/JavaScript目录下。在

c:/inetpub/webroot/aspnet_client/esri_arcgis_server_webcontrols/9_1/JavaScript/文件夹下可以找到这些文件。原来,为了重用的方便,在安装Arcgis Server时,安装程序就已经建立了一个虚拟目录,用于提供这些共享的资源。在这个文件夹上一级目录中,还可以看到images和treeimages两个子目录,以及treeview.htc文件。

知道了这些javascript文件的藏身之所,各位可以把这些javascript文件逐个看一遍,可以发现其作用主要是与浏览器进行交互。

4、再往下,是TOC组件的Html代码,代码片断如下:

ImageUrl="/aspnet_client/esri_arcgis_server_webcontrols/9_1/images/outscale.gif"

CheckBox="False">

道路注记

ImageUrl="ESRI.Web.Controls.MIMEImage.aspx?ImgID=Default.aspx_Toc1_0_1_0_0&N oCache=true">

这一段代码有一个特别之处就是ImageUrl="ESRI.Web.Controls.MIMEImage.aspx...",这个ESRI.Web.Controls.MIMEImage.aspx是什么东东,是一个网页吗?在机器里找一下,发现根本就不存在这个网页,那它又是何方神圣,竟然可以作为一个图片的地址?我们先往下看看。

5、

是鹰眼导航图的代码。怎么只有一个空的Div层和一个空的表格呢?唉,比较简单,我懒得分析了,同志们自己去找吧~

6、再往下是Toolbar组件的代码,没什么特别的:

id="Toolbar1ZoomIn"

onMouseDown="ToolbarMouseDown( 'Toolbar1', 'ZoomIn', 'Tool', event);"

onMouseOver="ToolbarMouseOver('Toolbar1', 'ZoomIn');"

onMouseOut="ToolbarMouseOut( 'Toolbar1', 'ZoomIn');"

style="background-color:LightSteelBlue;font-family:Arial;font-size:Smaller;font-weight:bold;" >Zoom In

src="Images/zoominD.gif" align="absMiddle">

7、再下面是生成地图组件的代码:

又看到了MIMEImage这个东东!它究竟是什么东东呢?

如果对https://www.wendangku.net/doc/8515621309.html,不是很熟悉的话,要破解这个秘密可能确实比较困难。

在https://www.wendangku.net/doc/8515621309.html,中,所有的请求,都是通过httpHandler来进行处理的。那httphandler又是什么东东呢?其实只要实现在IHttpHandler接口的类,都可以作为一个HttpHandler。在web.config或machine.config文件中,可以定义哪些请求可以由哪个httphandler来处理。查看一下web.config文件,没有这些声明。那就看一下mapchine.config文件吧,这个文件在WINDOWS\https://www.wendangku.net/doc/8515621309.html,\Framework\v1.1.4322目录下,用记事本打开它,查找

ESRI.Web.Controls.MIMEImage.aspx,好家伙,果然在这里啊!

type="ESRI.ArcGIS.Server.WebControls.ImageHandler, ESRI.ArcGIS.Server.WebControls, Version=9.1.0.722, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86"/>

原来ESRI.Web.Controls.MIMEImage.aspx请求是能过

ESRI.ArcGIS.Server.WebControls.ImageHandler来处理的。在Visual Studio中,使用对像浏览器查看一下esri.arcgis.server.webcontrols.dll文件,可以看到ImageHandler类,果然实现了IHttpHandler接口。呵呵,其实很简单嘛,我们也完全可以自己写一个类,来执行自定义的请求。

在(二)中我们分析了HTML代码,也就基本弄清了.net adf怎样封装客户端的交互,以及客户端怎样与服务器端进行交互。下面我们再看一看服务器端的开发方式是怎样的,实际是就是进入了比较简单的实战。用其它工作开发Web GIS的朋友如果能够了解一下AGS的实现,一定会有很的大启发,你会在其中学到一些封装客户端、服务器端以及两者交互的技巧,怎样做到既封装一些常用的功能,又不妨碍我们进行功能的扩充。

好了,废话少说,开始我们新的体验吧。

在(一)中我们已经说了,.net adf提供了一系列的模板,这些模板又根据不同的需要,封装了一些常用的功能。我们的开发一般是从这些模板开始的。如果我们对这些模板生成的程序已经很熟了,当然也可以不需要这些模板,但如果你是新手,请从模板开始,这样可以避免走很多弯路。

首先,我们启动Visual Studio 2003,新建一个项目,在新建对话框中,在“项目类型”中可以看到ArcGIS Server Projects这一项,选择语言Visual C#,在右边的模板列表中可以看到有七种模板可供选择,每种模板可用于新建不同用途的应用,如下图所示:

我们先新建一个Map Viewer Web Application,也就是地图浏览程序。我们待会通过分析可以看到这个地图浏览程序是怎样实现的,以及怎样扩充自己的功能。

新建了一个Map Viewer Web Application之后,界面如下图所示。可以看到,.net为我们新建了一个https://www.wendangku.net/doc/8515621309.html, web工程。工程包括三个页面,default.aspx,errorpage.aspx和identify.aspx。其中,default.aspx是主界面,errorpage.aspx用于出错信息的显示,identify用于点击查询操作的结果的显示。下面我们主要分析default.aspx这个网页。

这个网页的的上部分是一个banner,不用管。下部分由七个https://www.wendangku.net/doc/8515621309.html,组件构成。这七个

组件分别是:

1、Map组件:地图组件。有两个关键属性:Host和ServerObject,不用我说,也知道这是什么意思。

2、Toc组件:图层控件组件(table of contents)。有一个关键属性BuddyControl,即与哪个Map组件相关联。

3、Toolbar组件:工具条组件。有一个关键属性BuddyControls,表示可以绑定多个Map组件或PageLayout组件。

4、OverviewMap组件:导航图组件。有三个关键属性Host,ServerObject和BuddyControl。

5、Impersonation组件:身份验证组件。有一个关键属性identity,用于设计怎么登录

到服务器,拥有操作的权限。

6、NorthArrow组件:指北针

7、ScaleBar组件:比例尺组件,有一个关键属性BuddyControl。BarFont属性好像有Bug,怎么设置也不起效,字体总是很小,不知为什么,哪位朋友也帮俺一个忙,看看怎么回事?

这七个组件中,显然Map组件最为重要,因为它负责地图显示并与用户交互。我们看一下Map组件有的事件,只有MapChanged的事件包含代码,仔细看一下,是与视图(地

图范围)保存相关的代码。那Map组件与用户交互以及服务器端的处理代码,如缩放地图,在哪里呢?

再看一看Toolbar组件,共包含七个按钮,分别是放大,缩小,平移,全图,上一视图,下一视图和点选。点开它的ToolbarItems属性看一下,原来工具条按钮的定义都在这里面。

工具条按钮有两种类型:Tool和Command

Tool:工具按钮。表示点击后并不立即执行某项功能,而是需要用户与地图进行交互再执行。所以需要保存它的状态。并且同时需要有相应的客户端代码(javascript)和服务器端

代码。放大、缩小、平移和点选属于这种类型。

Command:命令按钮。立即执行某项操作,不需要有户交互,所以不需要何存状态。

全图、上一视图、下一视图属于这种类型。

我们在ToolbarItems的定制界面中,选中identify,看一下它的属性,包括五部份:

1、Appearance Images组:定义按钮显示的图片。这些设置会转化成HTML代码。

2、Appearance Text组:有两个子项。Text表示在按钮中显示的文字,也就是说按钮

可以由图片和文字两部份组成。ToolTip,即鼠标放在按钮上面时显示的提示信息。

3、Client-side Action组:这组只有一个属性,就是ClientToolAction,这里就是与客户端交互的javascript代码了。内容是ID()。我们打开defaut.aspx,查看HTML,可以看到ID 函数的内容。这里交互比较简单的情况,交互比较复杂,如放大时需要拉框,怎么封装?原来,Cient-side Action实际上只是javascript中onmousedown的执行函数,拉框所需的onmousemove和omnouseup去哪里找?其实只是一个小技巧而已,在onmousedown中动态地给onmousemove和onmouseup赋值不就可以了吗?事实上,.net adf封装zoomin等操作

就是这要样做的。

Client-side Action属性有一个下拉选项,包含的是DragImage,

DragRectangle,Point,Line,PolyLine,Polygon,Circle,Oval,none,Custom。不用解释,相信大家也明白了,是Toolbar组件封装了各种不同类型的客户端操作。这些与客户端交互的javascript 在哪里呢?(二)中已经介绍了,这里就省略啦。

4、General组。包括Disabled,Name,ShowLoading三个属性。

5、Server-side Action组:有两个属性,ServerToolActionAssembly和ServerToolActionClass,用于定义服务器端要执行的功能。在.net adf中,每个被封闭的服务端操作,都是由一个类来实现的,ServerToolActionAssembly表示这个类在哪个程序集中,ServerToolActionClass就是这个类的名称。我们在ServerToolActionAssembly中选择ESRI.ArcGIS.Server.WebControls,可以清楚的看到该程序集中定义了四个这种类:MapCenterAt,MapPan,MapZoomin,MapZoomout。事件上,我们也可以定义自己的处理类,只要实现ESRI.ArcGIS.Server.WebControls.Tools.IMapServerToolAction接口就可以了。

关于扩展:

1、客户端交互:即Client-side Action组,adf封装了DragImage,DragRectangle,Point,Line,PolyLine,Polygon,Circle,Oval这几种操作,相信已经能够应付我们绝大部份的应用了。如果还不行,别忘了最后还有一项custom,选中它,自己写javascript 就可以了。记得是onmousedown的javascript哦。在交互完毕后的代码中,如果需要返回到服务器端的话,记得执行_doPostback函数。

2、服务器端功能实现:即Server-side Action组。Map组件针对客户端封装的每种行为,都提供了一个事件,表示客户端交互完毕后,立即执行该事件中的代码。这些事件有Oval,Line,Point,Polygon等。如果客户端操作是自己写的javascript,并最后提交了操作到服务器的话,可以在Page_Load中处理你自己的操作。

上面介始的是Tool类型的工具条按钮。至于Command类型的就简单多了,我们可以选中FullExtent看一下,它的属性少了Client-side Action组和Server-side Action组。它的实现代码就直接到Toolbar组件的CommandClick事件中。自己去看吧。

其它组件就不介绍了。

说了这么多,相信您对用.net adf开发Web GIS已经有一个大致的了解,也基本明白了.net adf的封装方式,您已经可以开始偿试修改已有的功能,或者进行一些简单的扩展了。下一节我就再介绍一下怎样进行简单的功能扩展。

这一节主要贴代码算了,通过代码看一下一些简单功能的实现。偶快要放假了,静不下心来写了,写得也不好。说不定贴代码效果更好。

1、获取所有图层

ESRI.ArcGIS.Server.WebControls.WebMap webmap= Map1.CreateWebMap();

try

{

ESRI.ArcGIS.Carto.IMapDescription descr = webmap.MapDescription;

ddlLayers.Items.Clear();

int id;

for (int i=0;i<= https://www.wendangku.net/doc/8515621309.html,yerDescriptions.Count-1;i++)

{

id = https://www.wendangku.net/doc/8515621309.html,yerDescriptions.get_Element(i).ID;

ddlLayers.Items.Add(id.ToString() + "," + https://www.wendangku.net/doc/8515621309.html,yerNameFromID(id)); //ddlLayers是一个DropDownList控件

}

if (ddlLayers.Items.Count>0)

ddlLayers.SelectedIndex=0;

}

}

finally

{

webmap.Dispose();

}

2、通过图层的ID获取图层对象

private IFeatureLayer GetFeatureLayer(int lyid)

{

WebMap webmap = Map1.CreateWebMap();

try

{

ILayer layer = (webmap.MapServer as IMapServerObjects).get_Layer(webmap.DataFrame,lyid );

if (layer==null)

return null;

else

{

return (layer as IFeatureLayer);

}

}

finally

{

webmap.Dispose();

}

}

3、新建一个多边形

private void Map1_Polygon(object sender, ESRI.ArcGIS.Server.WebControls.PolygonEventArg s args)

{

if (args.ToolName == "newpolygon")

{

IFeatureLayer flayer = GetCurFeatureLayer(); //获取当前活动图层了函数,这里就不贴了,就是调用GetFeatureLayer(int lyid)函数

if (flayer == null) return;

if (flayer.FeatureClass.ShapeType != ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometry Polygon)

{

string sc;

sc = "";

Page.RegisterClientScriptBlock("ShapeTypeError",sc);

return;

}

//生成多边形

ESRI.ArcGIS.Server.IServerContext context;

ESRI.ArcGIS.Server.WebControls.WebMap webmap = Map1.CreateWebMap();

webmap.ManageLifetime(flayer);

context = webmap.ServerContext;

ESRI.ArcGIS.Geometry.IPolygon poly = context.CreateObject("esriGeometry.Polygon") as ES RI.ArcGIS.Geometry.IPolygon; //'new ag.PolygonClass();

webmap.ManageLifetime(poly);

ESRI.ArcGIS.Geometry.IPoint pt;

ESRI.ArcGIS.Geometry.IGeometryCollection ringcol = context.CreateObject("esriGeometry.P olygon") as ESRI.ArcGIS.Geometry.IGeometryCollection;// new PolygonClass();

webmap.ManageLifetime(ringcol);

ESRI.ArcGIS.Geometry.IPointCollection ptcol =context.CreateObject("esriGeometry.Ring") as ESRI.ArcGIS.Geometry.IPointCollection;// new RingClass();

webmap.ManageLifetime(ptcol);

object obj=Type.Missing;

for (int i=0;i<=args.Vectors.Length-1;i++)

{

pt = webmap.ToMapPoint(args.Vectors[i].X,args.Vectors[i].Y);

ptcol.AddPoint(pt,ref obj,ref obj);

}

ringcol.AddGeometry(ptcol as IGeometry,ref obj,ref obj);

poly = ringcol as IPolygon;

//将多边形写入到图层中

ESRI.ArcGIS.Geodatabase.IFeature feature = flayer.FeatureClass.CreateFeature();

feature.Shape = poly as IGeometry;

feature.Store();

webmap.Refresh();

webmap.Dispose();

}

}

4、矩形选择,获得选择集,并在地图上显示选中的对象。(这个功能花费了偶一天多的时间。)

private void Map1_DragRectangle(object sender, ESRI.ArcGIS.Server.WebControls.ToolEvent Args args)

{

string strTool = args.ToolName.ToLower();

if (strTool=="rectsel")

{

//取得当前层

if (ddlLayers.SelectedValue=="")

return;

IFeatureLayer flayer = GetCurFeatureLayer();

if (flayer == null) return;

//获得选择集

int t1=Environment.TickCount;

ESRI.ArcGIS.Server.WebControls.WebMap webmap = Map1.CreateWebMap();

ESRI.ArcGIS.Server.IServerContext ctx = webmap.ServerContext;

webmap.ManageLifetime(ctx);

ESRI.ArcGIS.Geodatabase.IWorkspace ws = (flayer.FeatureClass as ESRI.ArcGIS.Geodatabas e.IDataset).Workspace;

ESRI.ArcGIS.Geometry.IEnvelope env = ctx.CreateObject("esriGeometry.Envelope") as ESRI. ArcGIS.Geometry.IEnvelope;

webmap.ManageLifetime(ws);

webmap.ManageLifetime(env);

IPoint pt = webmap.ToMapPoint(Convert.ToInt32(Request.Params.Get("maxx")),Convert.ToIn t32(Request.Params.Get("maxy")));

env.XMax = pt.X;

env.YMin = pt.Y;

pt = webmap.ToMapPoint(Convert.ToInt32(Request.Params.Get("minx")),Convert.ToInt32(Re quest.Params.Get("miny")));

env.XMin= pt.X;

env.YMax = pt.Y;

ESRI.ArcGIS.Geodatabase.ISpatialFilter filter = ctx.CreateObject("esriGeodatabase.SpatialFilt er") as ESRI.ArcGIS.Geodatabase.ISpatialFilter;

webmap.ManageLifetime(filter);

filter.SpatialRel = ESRI.ArcGIS.Geodatabase.esriSpatialRelEnum.esriSpatialRelIntersects;

filter.Geometry = env as ESRI.ArcGIS.Geometry.IGeometry;

filter.GeometryField = flayer.FeatureClass.ShapeFieldName;

ESRI.ArcGIS.Geodatabase.ISelectionSet sset = flayer.FeatureClass.Select(filter,ESRI.ArcGIS. Geodatabase.esriSelectionType.esriSelectionTypeSnapshot,ESRI.ArcGIS.Geodatabase.esriSelecti onOption.esriSelectionOptionNormal,ws);

int t2=Environment.TickCount;

int t3=t2-t1; //t3是查询响应的时间,可以用来测试一下性能,呵呵

//显示选择集

int id;

ESRI.ArcGIS.Geodatabase.IEnumIDs ids;

ids = sset.IDs;

webmap.ManageLifetime(ids);

ids.Reset();

ESRI.ArcGIS.Geodatabase.IFIDSet fidset = ctx.CreateObject("esriGeodatabase.FIDSet") as ES RI.ArcGIS.Geodatabase.IFIDSet;

id = ids.Next();

while (id>=0)

{

fidset.Add(id);

id =ids.Next();

}

IMapDescription desc = webmap.MapDescription as IMapDescription;

webmap.ManageLifetime(desc);

ILayerDescription ldesc = https://www.wendangku.net/doc/8515621309.html,yerDescriptions.get_Element(flyid);

webmap.ManageLifetime(ldesc);

ldesc.SelectionFeatures = fidset;

//将选择信息保存在session中

Session["selection"] = sset;

Session["layerid"] = flyid;

webmap.Refresh();

webmap.Dispose();

}

}

5、删除选中的对象

private void DeleteSel()

{

if (Session["layerid"]==null) return;

if (Session["selection"] == null) return;

int layerid = (int)Session["layerid"];

if (layerid == -1) return;

ESRI.ArcGIS.Geodatabase.ISelectionSet sset = Session["selection"] as ESRI.ArcGIS.Geodataba se.ISelectionSet;

if (sset == null) return;

WebMap webmap = Map1.CreateWebMap();

IFeatureLayer layer = GetFeatureLayer(layerid);

if (layer==null) return;

webmap.ManageLifetime(layer);

webmap.ManageLifetime(sset);

ESRI.ArcGIS.Geodatabase.IEnumIDs ids = sset.IDs;

webmap.ManageLifetime(ids);

ids.Reset();

int id;

id = ids.Next();

ESRI.ArcGIS.Geodatabase.IFeature feature;

ESRI.ArcGIS.Server.IServerContext ctx = webmap.ServerContext;

webmap.ManageLifetime(ctx);

//将selectionset转化为featurecursor对象

ESRI.ArcGIS.Geodatabase.IFeatureCursor fcursor;

ESRI.ArcGIS.Geodatabase.ICursor cursor;

sset.Search(null,false,out cursor);

fcursor = cursor as ESRI.ArcGIS.Geodatabase.IFeatureCursor;

ESRI.ArcGIS.esriSystem.ISet pDeleteSet = ctx.CreateObject("esriSystem.Set") as ESRI.ArcGIS .esriSystem.Set;

webmap.ManageLifetime(pDeleteSet);

//设置ISet对象

feature = fcursor.NextFeature();

while (feature != null)

{

pDeleteSet.Add(feature);

feature = fcursor.NextFeature();

}

ESRI.ArcGIS.Geodatabase.IFeatureEdit fedit;

pDeleteSet.Reset();

fedit = pDeleteSet.Next() as ESRI.ArcGIS.Geodatabase.IFeatureEdit;

while (fedit != null)

{

fedit.DeleteSet(pDeleteSet);

fedit = pDeleteSet.Next() as ESRI.ArcGIS.Geodatabase.IFeatureEdit;

}

Session.Remove("layerid"); Session.Remove("selection");

webmap.Refresh();

webmap.Dispose();

}

MAPGIS67教程(制图详细步骤讲解)

第1章概述与安装 1.1 概述 MAPGIS 是中国地质大学(武汉)开发的、通用的工具型地理信息系统软件。它是在享有盛誉的地图编辑出版系统MAPCAD 基础上发展起来的,可对空间数据进行采集,存储,检索,分析和图形表示的计算机系统。MAPGIS 包括了MAPCAD的全部基本制图功能,可以制作具有出版精度的十分复杂的地形图、地质图,同时它能对图形数据与各种专业数据进行一体化管理和空间分析查询,从而为多源地学信息的综合分析提供了一个理想的平台。 MAPGIS 地理信息系统适用于地质、矿产、地理、测绘、水利、石油、煤炭、铁道、交通、城建、规划及土地管理专业,在该系统的基础上目前已完成了城市综合管网系统、地籍管理系统、土地利用数据库管理系统、供水管网系统、煤气管道系统、城市规划系统、电力配网系统、通信管网及自动配线系统、环保与监测系统、警用电子地图系统、作战指挥系统、GPS 导航监控系统、旅游系统等一系列应用系统的开发。 1.2安装 1)系统要求: 硬件:CPU 486 以上、16M RAM、200M 硬盘、256 色以上显示器; 操作系统:Win9x、Win2000、WinNT 、WinXP或Win7系统; 输入设备:本单位主要使用的是GRAPHTEC—RS200Pro型扫描仪; 输出设备:本单位主要使用的是Canon—IPF700型出图打印机。 2) 硬件的安装: MAPGIS 硬件部分有加密狗,ISA 卡、PCI 卡三种,本单位主要为MAPGIS USB 软件狗,在确保机器BIOS 设置中USB 设备未被禁止的条件下,Windows 98 和Windows2000 自带的标准USB 驱动程序均可支持MAPGIS USB 软件狗工作。 3)软件的安装: MAPGIS 安装程序的安装过程为:找到MAPGIS 系统安装软件,双击SETUP 图标,系统自动安装软件,在WIN2000/NT/XP 下安装时,应先运行WINNT_DRV,提示成功后才可选择SETUP 开始MAPGIS 程序的安装; 对于MAPGIS6.1 及MAPGIS6.5,则无关键字和安装选择,但须根据实际需要选择安装组件。 从上述组件中选择实际运用中需要的选项,根据提示即可完成安装。

利用VB和MAPGIS基本控件做二次开发

利用VB和MAPGIS基本控件学做二次开发 摘要:本文介绍了利用VB进行MAPGIS二次开发的原理、方法和实现技术,为用户进行复杂的应用开发提供了技术基础。 关键词:VB,MAPGIS,二次开发 微软公司的Visual Basic是一个简单易学的可视化开发工具,MAPGIS提供了很多功能强大的图形和属性管理控件,并为二次开发提供了许多完备的功能接口。利用VB和MAPGIS 基本控件可以做一些基本的开发,满足用户的一些特殊需要。本文将以区文件操作开发为例,讲解二次开发的原理、方法、要点和实现技术。 第一步:首先建立VB开发环境。 安装MAPGIS SDK软件到MAPGIS安装路径下。 添加声明模块vbW60_Area.bas,该模块包含MAPGIS基本参数及结构定义、消息与版本定义等。添加的方法是:在VB程序中点取"Project"菜单下的"Add Module",添加vbW60_Area.bas文件,该文件在MAPGIS安装程序的Basic子目录下。 添加参照引用文件。这些文件是MAPGIS控件功能实现的外部参照。添加的方法是:在VB程序中点取"Project"菜单下的“References”,将MapGisBasCtl1 1.0 Type Library、MapGisBasCtl2 1.0 Type Library、MapGisBasCom 1.0 Type Library、MapGisBasCtl 1.0 Type Library四个参照文件打钩,如下图所示。 设置可执行文件输出目录。生成的可执行文件必须放在与MAPGIS安装目录的动态库和控件相同的目录中才能执行。设置的方法是:点取"File"菜单下的"Make *.exe..",选择

web前端开发入门教程

web前端开发入门教程 web前端开发入门教程哪里有?千锋WEB前端开发培训坚持全程面授并以项目驱动教学,让学员在毕业之后能够胜任研发PC端网站,PC端管理信息系统,移动端WebAPP,微信公众号,混合APP等前端,后端以及全栈项目。下边请看学员的故事。 过完年不断在天津找工作,先前找的是与专业相关的工作,但是找不到,那段时间简直天天都在面试,有的时分一天要面两家,每天累个半死不说,而且面试官问的问题都不会,对我的打击特别大。那段时间真的是我人生当中最灰暗的时期。每天,打电话妈妈都会说谁谁谁找到工作了,在哪里哪里,工资几几,而且也有人经常问我的家人,问我找到工作了没有。我每次都特别的伤心,难过,觉得本人一无事处。 其实也不是找不到工作,只是找到的工作都不是本人喜欢的,要么就是销售,要么就是运维,没有一个本人喜欢的工作。思索到本人未来的开展和方向,就不想这样随意的渡过。在大二的时分,看过一些编写网页的书籍,本人觉得特别喜欢,正好碰到了祖姐姐来我们学校宣传咱们千锋教育,所以就了解了一下我们千锋。当初是特别的犹疑的,由于毕竟那么多学费,而且出来也不晓得可不能够找到工作。犹疑了很久,也剖析了利害,本人就打定主见要过来学习。家里经济条件不好,我有时分真的想放弃,最终还是不想屈从于本人大学毕业将要面对的那种无所作为的生活,所以我获得了家人的支持,来到了千锋WEB前端开发培训。

很侥幸,我的选择没有错,怀着忐忑的心来到生疏的北京,然后面对那么多生疏的人,而且要阅历的是一个特别痛苦的过程。真的特别侥幸,我能够进入到我们WEB前端开发班,这个集体特别的暖和,遇到玉姐那么好的人,协助了我们好多的事情,我们的这个集体特别的暖和,每个人都特别的友爱,同窗们相处下来真的很好。 我们同窗相亲相爱、互帮互助。我们遇到的教师也特别好,第一阶段的李教师,我是记得的。来到千锋WEB前端开发培训的第一位教师,带动了我们整个集体,使我们的班级特别的活泼和团结。之后我们碰到的教师也都很不错。其中JS和JQ阶段的教师所讲的东西,都是我们如今工作当中经常碰到的问题。真的很感激那几位教师。而且最后这阶段的教师是我们阿满教师,别人真的好,不光讲的课好,而且我工作当中遇到的问题都是问阿满教师的,阿满教师都会给我耐烦的处理问题。有时分我碰到的问题纠结半天,都是找阿满教师帮助指点迷津的。在这里我谢谢我的亲爱的教师们,教给我这么多有用的学问。我还要感激一下我的玉姐,真的十分感激,在我迷茫的时分给我方向,在我快受不住的压力的时分,给我解压,真的十分感激,我的招生教师祖姐姐也是,谢谢你们让我走上了这条

mapgis新手教程3

山西地信数码科技公司
MAPGIS 教程
8、系统弹出(如下图)对话框。在此对话框中选择我们新建好的空白文件夹。
此文件夹即为 新建好的空白 文件夹
9、选择要裁剪的文件。这儿有两种情况: ①如果(左面窗口中)所有的文件都需要进行裁剪时,我们直接点击“添加全部”即可。 ②如果(左面窗口中)只有一部分文件需裁剪时,我们要将所需裁剪的文件全部选中(即将 其选为蓝色) 。然后点击“添加”→选择全部→设置“参数” (参数的设置参照下图即可)→ →单击“参数应用” (此时左下角的窗口中会显示出我们将要进行裁剪的图形文件)→单击 “装入裁剪框” (即我们在“输入编辑”中新建好的区文件)→单击“开始裁剪”→在右下 角窗口中的任意位置单击右键,在弹出的下拉菜单中选择“复位窗口” 。这时裁剪后新的图 形文件就显示在此窗口中→退出。
5

山西地信数码科技公司
MAPGIS 教程
此处为裁剪 范围。 此图为裁剪 后的新文件。
10、最后,我们可以在“输入编辑”中打开裁剪后的文件。 (如下图)
6

山西地信数码科技公司
MAPGIS 教程
本次操作结束,如发现有不清或不对的地方请与我们联系(sxmapgis@https://www.wendangku.net/doc/8515621309.html,) ,我们 会及时改正,谢谢! 这里只是讲一些快速的入门法, 如果想更深入的了解 MAPGIS 知识, 请看 MAPGIS 相关书 籍。
7

山西地信数码科技公司
MAPGIS 教程
MAPGIS 打

(作者:sxmapgis) 功能:打印出图. 当一张图绘制完后,我们需要把它打印出来,具体步骤如下:
如果在准备出图的过程中,如果还要进行一些修改,在菜单栏上单击“返回编辑” 。
1

《web前端开发基础》作业考核试题题库大全(精品文档)

《web前端开发基础》作业考核试题题库大 全 《web前端开发基础》这门课是非常重要的,尤其是对于计算机专业的同学们来说,下面带来的《web前端开发基础》作业考核试题题库大全一起看看! 一、单选题共20题,40分 1 2分 浮动会让元素塌陷。即被浮动元素的父元素不具有高度。例如一个父元素包含了浮动元素,它将塌陷具有零高度。你可以按以下()方法处理。 A在浮动元素后加个div设置clear: both; height:0,overflow:hidden B使用clearfix; C设置父元素浮动; D以上方法均可 2 2分 在CSS中,关于BOX的margin属性的叙述正确的是()。 A边距margin只能取一个值 Bmargin属性的参数有margin-left、margin-right、

margin-top、 margin-bottom Cmargin属性的值不可为auto Dmargin属性的参数值不能全部设置成0px 3 2分 下列( )HTML属性可用来定义内联样式。 Afont Bclass Cstyles Dstyle 4 2分 要将某div设置为漂浮于页面之上,以下能做到得是:Aposition:absolute; Bposition:relative Cposition:fixed Dposition:static 5 2分 下列()工具可以方便地选择连续的、颜色相似的区域。 A魔棒工具

B矩形选框工具 C椭圆选框工具 D磁性套索工具 6 2分 给一个盒子设置左右填充分别为10px和20px后,如果要求盒子在页面中占的总宽度不变,那么应该让盒子的宽度减少()像素。 A10px B20px C30px D不需减少 7 2分 在客户端网页脚本语言中最为通用的是( )。 AVB BJavaScript CPerl DASP 8 2分 下列( )标签里包含的内容可以显示在页面上。

web前端开发工程师都需要掌握哪些技能

web前端开发工程师都需要掌握哪些技能? 今天由优就业IT培训的老师和大家讲讲web前端开发需要掌握什么技术,希望对大家可以有所帮助! web前端开发工程师需要掌握的技术: 1.学习html,这个是最简单的,也是最基础的.要熟练掌握div、form table、ul li 、p、span、font这些标签,这些都是最常用的,特别是div和table,div用于布局、table也可以用于布局,但是不灵活,基本 table是用来和数据打交道。 2.学习css,这里说的css不包括css3,一般我们看到web前端开发工程师的要求里面,有一个会使用css+html 或者 css+div 来进行界面布局,所以css是用于辅助html来布局和展示的,我们称之为“css样式”,为什么会说css+div呢?因为我上面说了div就是 html 主要用于布局的东西,所以div就是核心掌握的东西!那么css肯定必须要配合div来使用才好.css要熟练掌握float、 position、width、height,以及对于的最大最小、会使用百分百、overflow、margin、padding等等,这些都是跟布局有关系的样式,一点要掌握。 3.学习js. 可能前两个大家觉得还过的去,看到js就傻眼了,其实吧,js入门很简单的,不需要会很多东西的,只要会根据某个id、或者name拿到网页dom或者样式、或者值,然后

会给某个id或者name的元素标签赋值、或者追加数据、追html,这个是跟数据有关系的操作,然后数据逻辑判断,效果方面的,无非就是跳转、弹框、隐藏什么的,把这些全部结合其他就是实际用途了,代码一点都不难,会了这些基础js,其他的直接百度就好了.然后看多了,用多了,就什么都不是问题了。 4.学习jquery.jquery是相当于把js封装了一套的一个js插件,目的就是操作起来更方便,代码写的更少,jquery入门也很简单,那些是入门需要学的和js一样,只是换成了jq 的代码.其他的一样百度就够了。 5.最好会点后台语言,比如java、php,为什么呢?因为前台界面的数据都是从后台来的,如果会点后台代码,就知道怎么跟后台交互数据是最好的, 这样节约时间,也可以让前端代码更规范.不然可能因为你的写法和后端给来的数据不能结合上,那么前端代码又得重新写,那就更加麻烦了。 6.学习css3+html5,可能这个对于更接手的新人来说有点困难,需要较强的代码知识与经验,但是如果你们是准备专门搞前端,那么最好还是学一下,这样对于将来的工作会有更大的帮助。 更多知识干货分享,尽在中公优就业,>>>点击进入。 点击查看>>>中公IT优就业封闭式培训,包食宿,学费贷款,交通补贴,推荐就业

(推荐下载)MAPGIS67教程(制图详细步骤讲解)

(完整word版)MAPGIS67教程(制图详细步骤讲解) 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整word 版)MAPGIS67教程(制图详细步骤讲解))的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整word版)MAPGIS67教程(制图详细步骤讲解)的全部内容。

第1章概述与安装 1.1 概述 MAPGIS 是中国地质大学(武汉)开发的、通用的工具型地理信息系统软件。它是在享有盛誉的地图编辑出版系统 MAPCAD 基础上发展起来的,可对空间数据进行采集,存储,检索,分析和图形表示的计算机系统。MAPGIS 包括了 MAPCAD的全部基本制图功能,可以制作具有出版精度的十分复杂的地形图、地质图,同时它能对图形数据与各种专业数据进行一体化管理和空间分析查询,从而为多源地学信息的综合分析提供了一个理想的平台。 MAPGIS 地理信息系统适用于地质、矿产、地理、测绘、水利、石油、煤炭、铁道、交通、城建、规划及土地管理专业,在该系统的基础上目前已完成了城市综合管网系统、地籍管理系统、土地利用数据库管理系统、供水管网系统、煤气管道系统、城市规划系统、电力配网系统、通信管网及自动配线系统、环保与监测系统、警用电子地图系统、作战指挥系统、GPS 导航监控系统、旅游系统等一系列应用系统的开发。 1。2安装 1)系统要求: 硬件:CPU 486 以上、16M RAM、200M 硬盘、256 色以上显示器; 操作系统:Win9x、Win2000、WinNT 、WinXP或Win7系统; 输入设备:本单位主要使用的是GRAPHTEC—RS200Pro型扫描仪; 输出设备:本单位主要使用的是Canon—IPF700型出图打印机。 2)硬件的安装: MAPGIS 硬件部分有加密狗,ISA 卡、PCI 卡三种,本单位主要为 MAPGIS USB 软件狗,在确保机器 BIOS 设置中 USB 设备未被禁止的条件下,Windows 98 和 Windows2000 自带的标准 USB 驱动程序均可支持 MAPGIS USB 软件狗工作。 3)软件的安装: MAPGIS 安装程序的安装过程为:找到 MAPGIS 系统安装软件,双击SETUP 图标,系统自动安装软件,在 WIN2000/NT/XP 下安装时,应先运行 WINNT_DRV,提示成功后才可选择 SETUP 开始 MAPGIS 程序的安装; 对于 MAPGIS6。1 及 MAPGIS6。5,则无关键字和安装选择,但须根据实际需要选择安装组件。 从上述组件中选择实际运用中需要的选项,根据提示即可完成安装。

mapgis二次开发教程

mapgis二次开发教程 默认分类 2009-09-08 10:18:14 阅读898 评论1 字号:大中小订阅 目前MAPGIS二次开发库主要以API函数、MFC(Microsof t Foundation Class)类库、Com组件、Activ eX 控件四种方式提供。开发库被封装在若干动态链接库(DLL)中。 API函数在使用方法上与Windows的API函数完全一样,因此是独立于开发工具的。无论您使用VC++、VB还是BC++、Dephi…,您在这些工具中如何调用Windows的API函数,您就可以怎么调用这些二次开发函数。 MAPGIS类库是为基于MFC类库的C++开发者提供的多个可重用基类,它将应用程序所需的常见基本功能作了封装,使用便利,改动灵活。开发者只需从类库派生即可使自己的程序获得从窗口显示控制到图形查询编辑的各项功能。 MAPGIS COM组件是MAPGIS新一代体系结构的表现,功能更加强大,使用更加便利。具有二次开发方便、易于集成、无限 扩展等特点。支持多种开发软件,包括Visual C++、Visual Basic、Delphi、script、InterDev、Power Builder等,开发者可以多层次的 访问MAPGIS组件的数据层、功能层和界面层。 Activ eX 控件是MAPGIS完成组件化改造的成果之一,它们使得二次开发更为快捷便利,代码的可复用性更高。 上述各类开发接口提供了从最基本数据单元的读取、保存、更新和维护到MAPGIS地图库的建立和漫游,以及空间分析,图象 处理等一系列功能。其中,API函数是基础,使用上最灵活,但技巧性要求也最高。所以本书大量篇幅用于介绍C++ API函数。MAPGIS将不断丰富完善各类二次开发接口,以多种开发手段满足不同层次、不同应用的需求。这些函数所 在的C++头文件表4-1所示:

Web前端基础总结 三篇

Web前端基础总结三篇 前端工作总结篇一:前端开发心得 从事前端开发工作1年多了,从最初的DIV+CSS学起,到现在学到html5、css3、javascript,jquery等等,我觉得前端要学的技术太多了,很多人认为前端开发要掌握的技能简单,就是网页制作,其实不然,前端开发是网站的前台代码实现,包括基本的HTML和CSS 以及JavaScript/ajax,现在最新的高级版本是HTML5、CSS3,以及SVG等。JavaScript作为最难的语言之一,许多编程高手也不敢妄自菲薄、自封精通。 关于兼容性的问题我相信对于每个做前端开发的人来讲是一个很头疼的问题,互联网目前主流浏览器有IE6789,Firefox,Chrome,Opera,Safari,遨游,包括国内主流的搜狗,腾讯TT,360等等;从内核上讲主要有IE的,遨游版IE,safari,firefox以及opera 的,这些都是大家常见的。所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。在大多数情况下,用户用什么浏览器来查看同一网站,都应该是统一的显示效果。所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题。这个时候就需要针对不同的浏览器写不同的CSS,这个过程叫CSShack。虽然我们写代码都要求按照标准,不写hack代码,但实际工作中为了兼容主流浏览器,hack代码是免不了的,所以这也应该是每个前端开发人员必备的技能。

前端的开发工具很多,比较常见的有Dreamweaver,Notepad,webstrom,SublimeText等等,我现在在使用webstorm,强大的提示功能可以帮助我们很快的熟悉并掌握网页布局,检查错误等。调试代码的工具我使用的Firebug。Firebug是网页浏览器Mozillafirefox 下的一款开发类插件,它集HTML查看和、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web 页面内部的细节层面,给Web开发者带来很大的便利。Firebug也是一个除错工具。用户可以利用它除错、、甚至删改任何网站的CSS、HTML、Dom以及Javascript代码。 以上是自己做前端开发的一点心得,它所涵盖的知识面远远不止这些,我也在不断的学习,不断地丰富自己,希望自己能在前端这个职位上开阔自己的一片天地! 前端工作总结篇二:WEB前端开发经验总结 这里跟大家谈谈个人对WEB前端开发的一些经验(当然都是个人的一些理解,有什么地方说的欠妥或不对的地方还请包含和指正),这里我就从WEB标准开始吧。 WEB标准是什么? 说是WEB标准,不过我这里主要是对XHTML1.1和CSS2.1的一些经验总结。因为WEB含盖的内容实在是太多了,“WEB标准”是一系列标准的总称,包括HTML4.0、XHTML1.1、CSS2.1、XML1.0、RSS2.0、ECMAScript1.1、DOM1.0等等。所以这里要跟大家指出来一下,WEB

Web前端开发简明教程(HTML+CSS+JavaScript+jQuery)教学大纲

高级网页设计与制作 Advanced Web Design and Implementation 一、课程编号: 二、课程类别: 三、课程性质:选修课 四、学时: 48(讲课学时:24 实验学时:上机学时:24 课外学时:) 五、学分: 3 六、先修课程要求:无 七、适用专业:计算机相关专业 八、适用年级、学期:二年级第1学期 九、课程目的及任务: 本课程是面向计算机相关专业学生开设的一门专业选修课程,培养学生WEB 开发中的前端界面设计能力,为后续课程的学习奠定基础。 本课程的主要任务是介绍利用Dreamweaver开发工具进行网页设计,包括如何在网页上显示文字、图片、表格、表单等;利用CSS技术对网页上内容进行排版,并设置相关格式;利用JavaScript技术对网页内容进行操作,实现一些动态效果。目的是通过本课程的学习,培养学生的实际动手能力和计算机的操作能力,能够运用所学的知识进行网页设计。 十、课程内容及基本要求(重点、难点、知识掌握程度及考核要求): 第1部分 HTML 第 1 章 HTML 概述 第 2 章 HTML 文本与图像 第 3 章 HTML 列表 第 4 章 HTML 表格 第 5 章 HTML 表单 第 6 章 HTML 5 要求:掌握HTML文档的结果,掌握标签、属性等的使用;掌握在页面上输出文字、段落,设置字体;掌握有序列表、无序列表的使用,能制作简单导航栏;掌握图片、背景与颜色的使用;掌握链接的使用,能使用超链接下载文件;掌握使用表格来表示数据和布局,用CSS对表格进行美化;掌握使用表单来与用户交互。第2部分 CSS语法基础 第 7 章 CSS 基础 第 8 章 CSS 盒子模型 第 9 章 CSS 字体与文本 第 10 章 CSS 列表与表格 第 11 章 CSS 定位 要求:掌握CSS的基本语法,掌握伪类与伪元素的使用;掌握CSS属性的使用,重点掌握定位、边距、填充属性。

新手学习mapgis教程

------------------- 时磊5说----- - ---- ------- 新手学习mapgis教程 一、几个术语 图层:按照一定的需要或标准把某些相关物体组合在一起。可以把图层理解为一张透明薄膜, 每一层的图元在同一薄膜上,如水系力图层、铁路图层、地质界限图层、断层图层等。图层的分层有利于地图图元的管理,提高成图速度。 栅格图:即扫描的图像。 矢量图:即进行了数字化的图像,图中的每一个点都有相对的X和Y座标。 图元:图面上表示空间信息特征的基本单位,分为点、线(孤段)、多边形等三种类型。 点元:点图元的简称,有时称点。指其位置只有一组X和Y座标来控制。 它包括字符串(注释)、子图(专用符号)等。所有点保存在点文件中(*.wt)结点:指某线或孤段的端点或数条线或孤段的交点。 结点平差:使几条线或孤段成为共用一个结点的过程 线图元:地图中线状物的总称。如划线、省界、国界、地质界线、断层、水系、公路等。所有线图元都保存在线文件中(*.wl) 区图元(面图元):由线或孤段组的封闭区域,可以以颜色和花纹图案填充。如湖泊、地层、岩体分布区等。所有区图元都保存在区文件中(*.wp )。 工程:对一系列的点、线、面文件进行管理的描述性文件。 二、MAPGIS几种主要文件类型及后缀 .wp区(面)文件.pnt控制点文件 .wl线文件 .wt点文件 ?tif栅格文件 .rbm光栅求反后文件 .mpj工程文件 ?cln图例板文件 点文件(.wt):包括文字注记、符号等。即在输入时,文字和符号都存在点 文件中。在机助制图时,文字注记称为注释(如各种标注等),符号称为子图(矿 点符号,泉符号等)。 线文件(.wl):是由境界线、河流、航空线、海岸线等线状地物组成的图元。 面文件(.wp):将各个行政区进行普染色后,就得到了区文件。在理论上,区是封闭的线组成的区域,因此区是基于线生成的。 工程(.mpj):对一系列的点、线、面文件进行管理的描述性文件。其主要记录了各个文件的信息,如存放地、可编辑性等。(如何建立工程,见以后) 图形处理一输入编辑 一、输入编辑步聚 主要步骤为: 1将图件进件进行扫描,成灰度、或彩色、或二值。 2、建立相应的工作目录,即建立自已的工作文件夹。女口mapgis学习 3、将扫描的图像拷入到工作文件夹中, 4、将系统库(相当于\mapgis65\slib文件夹)拷到工作文件夹中。

《前端 Web开发基础》课程标准

《前端 Web开发基础》课程标准 表1 课程基本信息 (一)课程性质与任务 课程性质:《Web开发基础》是软件工程专业培养课程体系中的一门专业必修课程,其包含了软件行业Web开发领域的关键技术基础知识(HTML,CSS及JavaScript等)。该课程的设置充分考虑了其在Web开发领域的关键性作用、目前市场广泛的应用需求和良好的就业前景,注重学生对理论基础知识、专业技能的理解、掌握。 课程任务:通过本课程的学习,使学生理解HTML、CSS及JavaScript等基本的理论知识;掌握应用上述理论知识,制作基本网页、设计网页布局、实现多样化及良好客户体验的页面效果等应用技能;培养学生的创新意识,设计特色网页。 (二)课程教学目标 通过本课程的学习,使学生掌握Web开发技术的基本理论知识,具备一定的应用开发技能,培养学生工程意识、创新能力和素质。 1. 知识目标 (1)了解本课程内容在Web开发领域的定位与作用; (2)了解HTML、CSS及JavaScript技术的发展脉络、趋势及应用前景; (3)掌握HTML中的基本元素、文字与段落元素、图像元素、列表元素、表格元素、超链接元素、多媒体元素、框架元素及表单元素的语法、属性和参数等基础知识; (4)掌握CSS中元素的语法、属性和参数等基础知识; (5)了解网页布局的几种方法,掌握使用CSS进行网页布局、样式设计的基础知识; (6)掌握JavaScript中的基本语法知识; (7)掌握JavaScript进行提交内容校验、生成网页特效等方法。 2. 能力目标

(1)具备使用HTML制作包含基本内容的网页的能力; (2)具备使用HTML及CSS等技术来设计网页布局的能力; (3)具备使用JavaScript技术来提高网页交互性、体验性的能力; (4)具备综合使用HTML、CSS与JavaScript的相关知识,来丰富、渲染网页的能力; (5)具备根据具体应用需求,创新性地设计网页的能力。 3. 素质目标 (1)培养学生具备克服困难解决问题的意志; (2)培养学生养成严谨认真的科学态度,耐心细致的工作作风; (3)培养学生具备良好的交流沟通素养和创新精神。 (三)参考学时 64 (理论:32\ 实验:32) (四)课程学分 4学分 (五)课程内容和要求(理论48学时,实验16学时) 本课程的主要内容有:HTML,主要包括网页基本组成元素,网页框架、超文本链接、表单、表格、层等。CSS,产要包括修改网页元素,主要包括修改文字颜色及背景、调整字符间距、单词间距、添加文字修饰、设置文本排列方式、设置段落缩进、调整行高、转换英文大小写、设置颜色、设置背景颜色、插入背景图片、设置背景图片位置、设计边框样式、调整边框宽度、设置边框颜色、设置边框属性等。JavaScript,包括JavaScript基本语法、基本数据类型、运算符、函数、JavaScript事件分析、图片和多媒体文件的使用、JavaScript 对象的应用、浏览器内部对象、内置对象和方法等。 本课程要求学生了解web编程技术的产生和发展过程,会使用HTML编写网页,会用CSS 对网页样式进行设计,会使用JavaScript实现一些客户端的数据验证及网页特效,达到一般企业用人标准。 表2 课程内容与学时安排表

前端开发培训ECMAScript入门教程百读易莱胜web前端培训专家

前端开发培训 ECMAScript 入门教程百读易莱胜 web 前端培训专家 热点:百读易莱胜官网 上海百读易莱胜官网 上海易莱胜 易莱胜官网 (一)let 和 const 命令
基本用法
ES6 新增了 let 命令,用来声明变量。它的用法类似于 var,但是所声明的变量, 只在 let 命令所在的代码块内有效。 { let a =10; var b =1;}
a // ReferenceError: a is not defined.b // 1 上面代码在代码块之中,分别用 let 和 var 声明了两个变量。然后在代码块之外调 用这两个变量,结果 let 声明的变量报错,var 声明的变量返回了正确的值。这表 明,let 声明的变量只在它所在的代码块有效。 for 循环的计数器,就很合适使用 let 命令。 for(let i =0; i <10; i++){ // ...}
console.log(i); // ReferenceError: i is not defined 上面代码中,计数器 i 只在 for 循环体内有效,在循环体外引用就会报错。 下面的代码如果使用 var,最后输出的是 10。

var a =[];for(var i =0; i <10; i++){ a[i]=function(){ console.log(i); };} a[6](); // 10 上面代码中,变量 i 是 var 命令声明的,在全局范围内都有效,所以全局只有一个 变量 i。每一次循环,变量 i 的值都会发生改变,而循环内被赋给数组 a 的函数内 部的 console.log(i),里面的 i 指向的就是全局的 i。也就是说,所有数组 a 的 成员里面的 i,指向的都是同一个 i,导致运行时输出的是最后一轮的 i 的值,也 就是 10。 如果使用 let,声明的变量仅在块级作用域内有效,最后输出的是 6。 var a =[];for(let i =0; i <10; i++){ a[i]=function(){ console.log(i); };} a[6](); // 6 上面代码中,变量 i 是 let 声明的,当前的 i 只在本轮循环有效,所以每一次循环 的 i 其实都是一个新的变量,所以最后输出的是 6。你可能会问,如果每一轮循环 的变量 i 都是重新声明的,那它怎么知道上一轮循环的值,从而计算出本轮循环的 值?这是因为 JavaScript 引擎内部会记住上一轮循环的值,初始化本轮的变量 i 时,就在上一轮循环的基础上进行计算。 另外,for 循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域, 而循环体内部是一个单独的子作用域。 for(let i =0; i <3; i++){ let i ='abc'; console.log(i);} // abc// abc// abc 上面代码正确运行,输出了 3 次 abc。这表明函数内部的变量 i 与循环变量 i 不在 同一个作用域,有各自单独的作用域。
不存在变量提升

web前端学习计划

web前端学习计划 篇一:Web前端开发工程师养成计划 Web前端开发工程师养成计划【转载】 Web前端开发工程师养成计划(入门篇) 最原始的忠告:这个世界上有想法的人很多,但是有想法又能实现它的人太少! 首先要感谢伟大的概念、产品概念、用户体验概念、jQuery插件,是它们在中国日渐成熟才解放了一直以来姥姥不疼舅舅不爱的前端开发工程师们。 有没有发现从09年下半年到现在全中国的互联公司都在招聘前端开发工程师?如果你注意到了,那么恭喜你,你已经拥有那么一点点预测互联职场动向的能力。 可能令你感到遗憾的是你从没从事过前端开发工作,不过没关系,只要你肯努力,一切都是可以学会的。 学生?设计师?程序员?SEOer?产品经理?项目经理?你是谁不重要,重要的是你想不想认识、了解、学习、精通前端技术。 一:想入门? 在入门之前你必须了解一个概念:什么是前端开发工程师? 在了解这个概念之前,先来看一下我们所熟悉的互联大佬们在最近的招聘中对前端开发工程师岗位的要求。

阿里巴巴: 1、丰富的前端开发经验,能解决Web项目中各种疑难问题; 2、精通各种Web前端技术,了解其适用范围及优劣性; 3、深刻理解Web标准,对标签语义、页面结构有深刻的认识,手写XHTML/CSS/JavaScript代码; 4、研究过JS框架,喜欢钻研新技术、能够解决各种浏览器兼容性问题。 Google: 1、1年以上的前端开发经验; 2、了解Web标准,熟练掌握HTML/XHTML、CSS,具备规范的HTML和CSS代码的实现能力; 3、熟练掌握JavaScript,对JavaScript的高级特性有深入理解,具备OO方式的JavaScript程序设计和实现能力; 4、对页面设计和用户体验有一定了解,具备较好的产品设计能力; 5、了解浏览器兼容性问题,熟悉前端开发和调试工具,具有解决实际问题的能力和经验; 6、熟悉一种Server端语言并有实际工作经验,比如Python、 PHP、Perl、Java、C等等; 7、熟悉Google API(任何产品均可),有实际的开发和使用经验;

web前端自学教程网盘下载地址分享

web前端自学教程网盘下载地址分享 Web作为现在热门的软件之一,吸引了很多人选择这门技术,作为未来职业的发展方向,Web入门门槛低,薪资高也是吸引大家学习的主要原因,毕竟学会这门技术就等于踏入了高薪大门,谁不想多挣钱呢? 现在想要学习Web前端开发,在网上可以找到很多的免费学习资料和视频,但是很多都是老旧技术,也有很多不够完整,这样的技术学完可能也不能发挥很好的作用。所以,想学习,找到好的学习资料很重要,现在小编给大家免费分享web前端自学教程。 千锋Web教程第一部分: 课程体系解读:https://www.wendangku.net/doc/8515621309.html,/s/1o7B9OYA 千锋Web教程第二部分: 微案例讲解:https://https://www.wendangku.net/doc/8515621309.html,/s/1nwyNFg1 千锋Web视频教程第三部分:

知识点讲解:https://https://www.wendangku.net/doc/8515621309.html,/s/1nwyNFg1 这些视频链接都是可以免费打开下载观看,对于初学html5的同学来说,这样的完整视频教程对于学习还是有很大帮助的,毕竟不用再去浪费时间去寻找,这样省去了不必要的麻烦。 如果这些视频教程不能满足你的学习需求,可以登录千锋咨询,而且也可以去免费试听课程,千锋为学员免费提供了长达两周的课程试听,去听听老师的讲师方式和思路,这样对于学习有更大的帮助,毕竟老师都是有经验的,他们总结出来的学习方法,肯定比我们自己去摸索效果要好得多。 千锋教育2018年全新升级更新了全栈前端工程师+课程大纲V10.0内容 Web课程升级后优势 课程大纲升级后,覆盖热门大数据可视化内容,深度贯穿前端后端开发,紧贴主流企业一线需求,注重项目和实战能力,真正做到项目制教学,业内罕见。 课程特色:注重全栈思维培养 全栈Web前端工程师不止是技术层面,千锋着力培养学员的大前端视角与全栈思维,就业后不仅有能力解决工作中的疑难问题,更有实力胜任项目leader! Web课程升级内容 1.新增时下大热的大数据可视化内容

Web前端开发实验教学指导书

Web前端开发实验指导书 20XX年09月

目录 实验1 HTML基础与布局元素 (3) 实验2 表格与表单的应用 (6) 实验3 框架 (8) 实验4 CSS样式表基础 (12) 实验5 CSS样式布局 (16) 实验6 Dreamweaver制作网页 (19) 实验7 网站设计 (22) 实验8 JavaScript基础 (26) 实验9 JavaScript对象 (29) 实验10 DOM编程 (33) 实验11 JavaScript常用特效 (36)

实验1 HTML基础与布局元素一、实验目的 1.掌握使用HTML的基本结构创建网页 2.掌握使用行级和块级标签组织页面内容 3.掌握使用图像标签实现图文并茂的页面 二、实验内容 使用HTML基本元素设计基本网页 三、实验环境 (1)使用的操作系统及版本。 Windows XP Professional (2)使用的编译系统及版本。 Dreamweaver CS6 四、实验步骤及说明 任务1基本块级元素 使用HTML编辑工具,编写HTML代码,实现如图所示的页面效果 任务2用于布局的块级元素

编写HTML代码,实现如图所示的页面效果 任务3行级元素 编写HTML代码,实现如图所示的页面效果。 任务4超链接 编写HTML代码,实现导航菜单的链接 ●单击lj.html页面的“人物简介”,将跳转到ww.html的介绍页。 ●单击lj.html页面的“王孟”,将跳转到设置锚点的ww.html页面相应位置。 ●单击ww.html的返回链接可以返回到lj.html。 ●单击“联系我们”,将自动打开本机的电子邮件程序。

web前端开发学习课程大纲

web前端开发学习课程大纲 互联网的发展,互联网企业的崛起,我们可以清晰地看到仅仅在10月份市场上,就有近19万个html5急需人才,各平台的平均薪资在10K~12K左右。互联网公司的前端缺口这么大,以至于HR整天因为找不到人而焦头烂额。然而还是有这么多前端的小伙伴抱怨说工作难找,找不到工作是不是自己的能力不足呢?web前端开发学习课程大纲推荐给大家学习。 好的学习大纲,能让大家知道学习的路线和内容,更容易掌握所需要的学习技能,千锋web前端开发培训课程分采用进阶式学习,阶段性检测学员掌握学员学习情况。学科课程体系能适应市场需求、紧跟时代技术,完全满足市场对web前端工程师的要求,大大提升了学员的市场竞争力。内容包括7大学习阶段: 第1阶段:前端页面重构(4周) 内容包含了:(PC端网站布局项目、HTML5+CSS3基础项目、WebApp 页面布局项目)

第2阶段:JavaScript高级程序设计(5周) 内容包含:1)原生JavaScript交互功能开发项目、面向对象进阶与 ES5/ES6应用项目、JavaScript工具库自主研发项目) 第3阶段:PC端全栈项目开发(3周) 内容包含:(jQuery经典交互特效开发、HTTP协议、Ajax进阶与PHP/JAVA开发项目、前端工程化与模块化应用项目、PC端网站开发项目、PC端管理信息系统前端开发项目) 第4阶段:移动端项目开发(6周) 内容包含:(Touch端项目、微信场景项目、应用Angular+Ionic开发WebApp项目、应用Vue.js开发WebApp项目、应用React.js开发WebApp项目) 第5阶段:混合(Hybrid,ReactNative)开发(1周) 内容包含:(微信小程序开发、React Native、各类混合应用开发) 第6阶段:NodeJS全栈开发(1周) 内容包括:(WebApp后端系统开发、一、NodeJS基础与NodeJS核心模块二、Express三、noSQL数据库) 第7阶段:大数据可视化 内容包含:(大数据可视化化基础与实战、一、数据可视化入门、二、 D3.js详解、三、其他JS库)

【黑马程序员】Web前端学习教程之CSS基础知识

【黑马程序员】Web前端学习教程之CSS基础知识 Web前端入门教程_Web前端html+css+JavaScrip 视频网盘:https://www.wendangku.net/doc/8515621309.html,/course/267.html?1912sxkqq 资料网盘:https://https://www.wendangku.net/doc/8515621309.html,/s/1pMPNzFP 提取码:557z H5+CSS3视频 视频网盘:https://www.wendangku.net/doc/8515621309.html,/course/197.html?1912sxkqq 资料网盘:https://https://www.wendangku.net/doc/8515621309.html,/s/1bqgl6Ej 提取码:uf7c 记忆力有限,很多知识都只能通过不断的复习笔记和实际操作来加深记忆,分享一些css 的基础知识。 1、CSS作用以及初识 Css的作用: Cascading Style Sheets,简称层叠样式表,主要是用来进行页面的版面布局和外观样式的美化; 使用css的原理: 能够将结构html和样式css分离书写,简化代码,提高可阅读性; 2、css引入方式 行内样式、内嵌样式(内联样式)、外部链接样式(外联样式)

行内式书写: 直接在标签的开始标签身上添加一个style=“”属性,然后在引号里面书写css属性和属性值即可,没有实现结构和样式分离,尽量不用: 内部样式(内嵌式): 书写在head标签里面,title标签下面,以一对style标签包裹,实现了结构和样式的半分离; Css样式书写格式: 选择器{ 属性1:属性值1; 属性2:属性值2; 属性3:属性值3;……} 选择器:指定CSS样式作用的HTML对象(要更改样式的标签),花括号内是对该对象设置的具体样式。 属性和属性值:以键值对的形式出现,属性和属性值之间用英文的冒号’ : ’链接;;外部链接的步骤: 01 新建:.css格式的css文件,直接书写选择器以及css样式; 02 引用:利用link标签引入新建的css文件,要配合link的三个属性 rel关系,type 文件类型(可以不写),href文件路径; 使用外部链接的好处: 实现了结构和样式的完全分离,代码简介,可读性强; Css外部链接样式共享 一个css样式可以共享,如果两个页面的标签样式完全一致,就可以使用同一个css文件,然后分别连接过来即可; Css引入方式的优缺点 行内样式表:书写方便,权重高。缺点:没有实现样式和结构相分离;

相关文档
相关文档 最新文档