




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络地理信息系统 实验报告班 级: 地理1201 学 号: 120050115 姓 名: 李猛 指导教师: 李俊付 实验一 百度地图API引入一、 实验内容1、引入百度地图api,实现地图展示功能二、 实验步骤开始学习百度地图API最简单的方式是看一个简单的示例。以下代码创建了一个地图并以河北工程大学作为地图的中心:准备页面根据HTML标准,每一份HTML文档都应该声明正确的文档类型,我们建议您使用最新的符合HTML5规范的文档声明:下面添加一个meta标签,以便使您的页面更好的在移动平台上展示。接着引用百度地图的js脚本接着设置样式,给地图设置一个容器元素div 引用百度地图API文件使用V1.4及以前版本的引用方式:创建地图容器元素 地图需要一个HTML元素作为容器,这样才能展现到页面上。这里我们创建了一个div元素。命名空间 API使用BMap作为命名空间,所有类均在该命名空间之下,比如:BMap.Map、BMap.Control、BMap.Overlay。创建地图实例var map = new BMap.Map(dituContent);位于BMap命名空间下的Map类表示地图,通过new操作符可以创建一个地图实例。其参数可以用元素id.创建点坐标var point = new BMap.Point(116.69034,39.54352);这里我们使用BMap命名空间下的Point类来创建一个坐标点。Point类描述了一个地理坐标点,其中114.513923表示中心点的经度,36.576754表示中心点的纬度。地图初始化map.centerAndZoom(point, 15); 创建地图实例后,对其进行初始化,BMap.Map.centerAndZoom()方法设置中心点坐标和地图级别,然后才可以执行其他操作。地图配置与操作地图被实例化并完成初始化以后,就可以与其进行交互了。它支持鼠标拖拽、滚轮缩放、双击放大等功能。您也可以修改配置来改变这些功能。配置选项可以在Map类参考的配置方法一节中找到。此外,还可以通过编程的方式与地图交互。Map类提供了若干修改地图状态的方法。例如:setCenter()、panTo()、zoomTo()等等。下面是通过代码展示的地图,中心点是廊坊市中心实验二 百度地图控件了解1、 实验内容熟悉百度地图api提供的控件二、实验步骤百度地图上负责与地图交互的UI元素称为控件。百度地图API中提供了丰富的控件,还可以通过Control类来实现自定义控件。地图API中提供的控件有:Control:控件的抽象基类,所有控件均继承此类的方法、属性。通过此类可实现自定义控件。NavigationControl:地图平移缩放控件,PC端默认位于地图左上方,它包含控制地图的平移和缩放的功能。OverviewMapControl:缩略地图控件,默认位于地图右下方,是一个可折叠的缩略地图。ScaleControl:比例尺控件,默认于地图左下方,显示地图的比例关系。MapTypeControl:地图类型控件,默认位于地图右上方。CopyrightControl:版权控件,默认位于地图左下方。(不允许删除)GeolocationControl:定位控件,针对移动端开发,默认于地图左下方。向地图添加控件可以使用Map.addControl()方法向地图添加控件。在此之前地图需要进行初始化。例如,要将标准地图控件添加到地图中,可在代码中添加如下内容:/向地图中添加缩放控件 var ctrl_nav = new BMap.NavigationControl( anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_LARGE ); map.addControl(ctrl_nav);其他的控件添加方法一样,只是名称不同控制控件位置初始化控件时,可提供一个可选参数,其中的anchor和offset属性共同控制控件在地图上的位置。控件停靠位置 anchor表示控件的停靠位置,即控件停靠在地图的哪个角。当地图尺寸发生变化时,控件会根据停靠位置的不同来调整自己的位置。anchor允许的值为:BMAP_ANCHOR_TOP_LEFT 表示控件定位于地图的左上角。BMAP_ANCHOR_TOP_RIGHT 表示控件定位于地图的右上角。BMAP_ANCHOR_BOTTOM_LEFT 表示控件定位于地图的左下角。BMAP_ANCHOR_BOTTOM_RIGHT 表示控件定位于地图的右下角。 控件位置偏移除了指定停靠位置外,还可以通过偏移量来指示控件距离地图边界有多少像素。如果两个控件的停靠位置相同,那么控件可能会重叠在一起,这时就可以通过偏移量使二者分开显示。比如:地图类型控件和城市列表控件默认位置都是地图右上角,就会出现重叠,如下图:,这就需要offset控制偏移量来避免重叠本示例将比例尺放置在地图的左下角,由于API默认会有版权信息,因此需要添加一些偏移值以防止控件重叠。var opts = offset: new BMap.Size(50, 50) map.addControl(new BMap. MapTypeControl(opts);修改控件配置地图API的控件提供了丰富的配置参数,您可参考API文档来修改它们以便得到符合要求的控件外观。例如,NavigationControl控件就提供了如下类型:BMAP_NAVIGATION_CONTROL_LARGE 表示显示完整的平移缩放控件。BMAP_NAVIGATION_CONTROL_SMALL 表示显示小型的平移缩放控件。BMAP_NAVIGATION_CONTROL_PAN 表示只显示控件的平移部分功能。BMAP_NAVIGATION_CONTROL_ZOOM 表示只显示控件的缩放部分功能。下图从左向右依次展示了上述不同类型的控件外观: 自定义控件百度地图API允许用户通过继承Control来创建自定义地图控件。要创建可用的自定义控件,您需要做以下工作:1.定义一个自定义控件的构造函数。2.设置自定义控件构造函数的prototype属性为Control的实例,以便继承控件基类。 3.实现initialize()方法并提供defaultAnchor和defaultOffset属性。4.自定义控件使用之前必须初始化实验三 百度地图服务一、实验内容了解百度地图提供的服务二、实验步骤地图服务是指那些提供数据信息的接口,比如本地搜索、路线规划等等。百度地图API提供的服务有:LocalSearch:本地搜索,提供某一特定地区的位置搜索服务,比如在北京市搜索“公园”。TransitRoute:公交导航,提供某一特定地区的公交出行方案搜索服务。DrivingRoute:驾车导航,提供驾车出行方案的搜索服务。WalkingRoute:步行导航,提供步行出行方案的搜索服务。Geocoder:地址解析,提供将地址信息转换为坐标点信息的服务。LocalCity:本地城市,提供自动判断您所在城市的服务。TrafficControl:实时路况控件,提供实时和历史路况信息服务。搜索类的服务接口需要指定一个搜索范围,否则接口将不能工作。本地搜索BMap.LocalSearch提供本地搜索服务,在使用本地搜索时需要为其设置一个检索区域,检索区域可以是BMap.Map对象、BMap.Point对象或者是省市名称(比如:邯郸市)的字符串。BMap.LocalSearch构造函数的第二个参数是可选的,您可以在其中指定结果的呈现。BMap.RenderOptions类提供了若干控制呈现的属性,其中map指定了结果所展现的地图实例,panel指定了结果列表的容器元素。var map = new BMap.Map(dituContent ); map.centerAndZoom(new BMap.Point(116.69034,39.54352), 15); var local = new BMap.LocalSearch(map, renderOptions:map: map ); local.search(人民公园);另外,BMap.LocalSearch还提包含searchNearby和searchInBounds方法,为您提供周边搜索和范围搜索服务。配置搜索BMap.LocalSearch提供了若干配置方法,通过它们可以自定义搜索服务的行为以满足您的需求。 在下面的示例中,我们调整每页显示8个结果,并且根据结果点位置自动调整地图视野,不显示第一条结果的信息窗口:var map = new BMap.Map(dituContent ); map.centerAndZoom(new BMap.Point(116.69034,39.54352), 15); var local = new BMap.LocalSearch(廊坊市, renderOptions: map: map,autoViewport: true,pageCapacity: 8); local.search(人民公园);结果面板通过设置BMap.LocalSearchOptions.renderOptions.panel属性,可以为本地搜索对象提供一个结果列表容器,搜索结果会自动添加到容器元素中。请看下面示例:var map = new BMap.Map(dituContent ); map.centerAndZoom(new BMap.Point(116.69034,39.54352), 15); var local = new BMap.LocalSearch(map, renderOptions: map: map,panel: results); local.search(人民公园);公交导航BMap.TransitRoute类提供公交导航搜索服务。和本地搜索类似,在搜索之前需要指定搜索区域,注意公交导航的区域范围只能是市,而不能是省。如果搜索区域为BMap.Map对象,路线结果会自动添加到地图上。如果您提供了结果容器,相应的路线描述也会展示在页面上。下面示例展示了如何使用公交导航服务:var map = new BMap.Map(dituContent ); map.centerAndZoom(new BMap.Point(116.69034,39.54352), 15); var transit = new BMap.TransitRoute(map, renderOptions: map: map ); transit.search(人民公园, 乐都新天地);结果面板 您可以提供用于展示文字结果的容器元素,方案结果会自动在页面中展现: 驾车导航BMap.DrivingRoute提供驾车导航服务。与公交导航不同的是,驾车导航的搜索范围可以设置为省。下面示例展示了如何使用驾车导航接口:var map = new BMap.Map(container); map.centerAndZoom(new BMap.Point(116.69034,39.54352), 15); var driving = new BMap.DrivingRoute(map, renderOptions: map: map, autoViewport: true ); driving.search(顺风宾馆, 惠德斋超市);结果面板下面示例中,我们提供了结果面板参数,方案描述会自动展示到页面上。var map = new BMap.Map(container); map.centerAndZoom(new BMap.Point(116.69034,39.54352), 15); var driving = new BMap.DrivingRoute(map, renderOptions: map : map, panel : results, autoViewport: true ); driving.search(顺风宾馆, 惠德斋超市);数据接口驾车导航服务也提供了丰富的数据接口,通过onSearchComplete回调函数可以得到BMap.DrivingRouteResult对象,它包含了驾车导航结果数据信息。 结果会包含若干驾车方案(目前仅提供一条方案),每条方案中包含了若干驾车线路(如果导航方案只包含一个目的地,那么驾车线路的个数就为1,如果方案包含若干个目的地,则驾车线路的个数会大于1。目前API尚不支持多个目的地的驾车导航)。 每条驾车线路又会包含一系列的步骤(BMap.Step),关键步骤描述了具体驾车行驶方案,可通过BMap.Step.getDescription()方法获得。var map = new BMap.Map(container); map.centerAndZoom(new BMap.Point(116.69034,39.54352), 15); var options = onSearchComplete: function(results) if (driving.getStatus() = BMAP_STATUS_SUCCESS) / 获取第一条方案 var plan = results.getPlan(0); / 获取方案的驾车线路 var route = plan.getRoute(0); / 获取每个关键步骤,并输出到页面 var s = ; for (var i = 0; i route.getNumSteps(); i +) var step = route.getStep(i); s.push(i + 1) + . + step.getDescription(); document.getElementById(log).innerHTML = s.join(); ; var driving = new BMap.DrivingRoute(map, options); driving.search(顺风宾馆, 惠德斋超市);步行导航接口在使用上与驾车导航一致,具体请参考API文档地图定位百度地图api提供了通过IP来定位的服务 根据IP定位是邯郸市实现定位的代码:/添加定位事件 var geolocationControl = new BMap.GeolocationControl(); geolocationControl.addEventListener(locationSuccess, function (e) / 定位成功事件 var address = ; address += e.addressCvince; address += e.addressComponent.city; address += e.addressComponent.district; address += e.addressComponent.street; address += e.addressComponent.streetNumber; alert(当前定位地址为: + address); ); geolocationControl.addEventListener(locationError, function (e) / 定位失败事件 alert(e.message); ); map.addControl(geolocationControl);实验四rcGIS Server发布地图服务一、实验内容了解ARCGIS Server地图服务发布流程二、实验步骤启动程序开始-所有程序-ArcGIS-ArcGIS Server for the Java Platform-ArcGIS Server Manager;如图23图4.1登陆我们使用“arcgismanager”用户登陆,其实也可以用当前系统登陆账户;如图24 图4.2点击“Log In”后竟然没有登陆进去,返回错误;如图25图4.3该错误是由于Windows防火墙的问题,关闭防火墙再试。OK,这就是Server Manager的主界面;如图26图4.4发布地图服务点击“Services”,看到服务列表是空的;如图27图4.5点击“Add New Service”,输入服务名,类型选择“Map Service”,点击“Next”如图28、29图4.6图4.7选择好地图文件后,点击“OK”,再点击“Next”;如图30图4.8默认,点击“Next”;如图31图4.9该页面用于设置服务实例池的参数,暂时默认,点击“Next”;如图32图4.10默认,点击“Next”;如图33图4.11.地图服务信息预览,点击“Finish”;如图34图4.12跳回服务列表界面,当点击“qingdao”前的“+”后,会看到该服务的缩略图,那么就证明地图服务发布成功了!如图35图4.13配置文件缓存接下来配置图片缓存,即瓦片技术,点击Edit下的“小铅笔”图标,再点击“Caching”标签,默认选择的“Dynamically”,即动态地图,我们勾选“Use tiles from a cache that you will define below”,比例尺等信息都是自动读取缓存目录下的XML文件后自动显示的,注意修改图片类型,当前地图使用JPG格式切割,所以需手动选择JPG,压缩率如果没有自动填写输入75,尺寸默认256,点击“Save and Restart”;如图36图4.14测试REST服务开始-所有程序-ArcGIS-ArcGIS Server for the Java Platform-ArcGIS Services Directory,如果结果返回404,如图37解决方法:登陆Server Manager,点击左侧导航的“Services”,选择标签“Configure Services Handler”,然后点击右侧的“Export”标签;如图38图4.16信息按照如下填写:Export Web Services:Rest ServiceWAR File Name:restSoap URL:http:/icewee-pc:8399/arcgis/services注意:Soap URL中的“icewee-pc”是我的主机名,应按照实际主机名进行修改接着输入:User name:arcgismanager(当前登陆Server Manager的用户名)Password:arcgis(如果你遵循我的建议的话应该是它,否则自行修改)Domain:IceWee-PC(当前计算机名,自行修改)点击“Test Conection”按钮后会显示返回结果“Successfully Connected”其他信息一概默认,点击最下面的“Export”按钮,完成“rest.war”的导出;如图39图4.17选择存储目录;如图40图4.18将导出的“rest.war”文件拷贝到“C:Program FilesArcGISServer10.0javamanagerweb_outputweb”目录下,重启如下三个服务:如图41图4.19再重复一次如下操作:开始-所有程序-ArcGIS-ArcGIS Server for the Java Platform-ArcGIS Services Directory,已经能看到我们之前发布的地图服务“qingdao”;如图42图4.20再回到“C:Program FilesArcGISServer10.0javamanagerweb_outputweb”目录下,将rest.war文件删除,否则重启机器后REST服务还是会出现404,是因为TOMCAT停止前会根据“.war”来清理掉它生成的同名项目目录,也就是说rest目录会被自动删除,所以下次访问就访问不到了,还需要重启那3个服务让rest.war自动解压成rest目录实验五ArcGIS API for JavaScript实现点、线、面的buffer分析一、实验内容1、ArcGIS.Server和ArcGIS API for JavaScript实现实现点、线、面的buffer分析,这里是通过GeometryServer实现。准备工作:2、在ArcGis Server中发布名为usa的MapServer。3、在ArcGis Server中发布名为Geometry的GeometryServer。完成后的效果图:二、实验步骤开始1.启动vs新建名为BufferSample的ASP.NET Web应用程序。其实jsapi是纯客户端的开发了不需要vs也不需要.net了,纯html页面就可以了用记事本都可以开发了。我这里为了方便了就用vs2008了,毕竟可以调试js脚本了。2.接着在工程中添加名为javascript的文件夹并且在这个文件夹里新建wabapp.js的文件,这里用来编写我们自己的js代码了,在Default.aspx页面里添加对这个js文件的引用,同时在Default.aspx页面里添加一个id为map的div标签作为地图控件的载体、5个input的功能按钮、2个input的输入框、1个select选择列表:Untitled Page#Text1 width: 54px; WKID:Buffer距离: 英里 码 千米 米 海里 美式海里 度 dd 3、上面的html代码中主要可以看一下5个input按钮的onclick事件,分别实现了画点、画线、画面、漫游、清楚图形的代码很简单了,还有就是单位选择的select了已经添加了7个常用的单位。4、切换到wabapp.js编写js代码,本例子的js代码分为3部分功能,第一载入地图进行显示;第二进行画点、线、面操作;第三根据画的点、线、面图形进行buffer分析。dojo.require(esri.map);dojo.require(esri.tasks.geometry);dojo.require(esri.toolbars.draw);dojo.require(esri.tasks.query);djConfig = isDebug:true ;var map,tb,geometryService,queryTask,query;function init()startExtent = new esri.geometry.Extent(-183.780014745329,16.2975638854873,-61.4068547410964,74.0304580085983, new esri.SpatialReference(wkid:4269); map = new esri.Map(map);/底图Tile图 var imageryPrime = new esri.layers.ArcGISTiledMapServiceLayer(/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer); map.addLayer(imageryPrime)var usa = new esri.layers.ArcGISDynamicMapServiceLayer(http:/jh-53a435fbc0e8/ArcGIS/rest/services/USA/MapServer);/设置要显示的图层 /usa.setVisibleLayers(0); /设置图层透明度 usa.setOpacity(0.8); map.addLayer(usa); /设置地图视图范围 map.setExtent(startExtent); geometryService = new esri.tasks.GeometryService(http:/jh-53a435fbc0e8/ArcGIS/rest/services/Geometry/GeometryServer); tb = new esri.toolbars.Draw(map); dojo.connect(tb, onDrawEnd, doDraw);/画图function doDraw(geometry) /根据图形的类型定义显示样式 switch (geometry.type) case point: var symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color(255,0,0), 1), new dojo.Color(0,255,0,0.25); break; case polyline: var symbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASH, new dojo.Color(255,0,0), 1); break; case polygon: var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color(0,0,0), 1), new dojo.Color(255,0,0,0.25); break; /把绘制的图形添加到map.graphics进行显示 var graphic =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 6. 有趣的水墨游戏说课稿-2025-2026学年小学美术岭南版三年级上册-岭南版
- Tau-352-U-15N-生命科学试剂-MCE
- Survivin-IN-1-生命科学试剂-MCE
- 2015一年级品生下册《春天在哪里》说课稿 北师大版
- SLC-391-生命科学试剂-MCE
- 素养提升 探索浩瀚星空说课稿-2025-2026学年初中地理商务星球版2024七年级上册-商务星球版2024
- 第15课 男生、女生好朋友教学设计-2025-2026学年小学心理健康六年级上册教科版
- 2025年天津市教育系统校级后备干部选拔考试题及答案
- 5.1 质量守恒定律说课稿-2023-2024学年九年级化学人教版上册
- Lesson 19 The Spring Festival说课稿-2023-2024学年小学英语六年级上册冀教版(一起)
- 第四单元《比》(单元复习课件)六年级数学上册 人教版
- 人教版(2024新版)七年级上册 Unit1单元测试卷(含答案)
- 2024-2030年中国柑橘类生物类黄酮行业市场发展趋势与前景展望战略分析报告
- 水利水电工程岩石试验规程
- 无罪辩护非法采矿意见范文
- 2023年中级注册安全工程师考试《安全生产法律法规》真题及答案
- 丽声北极星分级绘本五年级上教案:Stop!-Everyone-Stop
- 管理信息系统 课件 第6章 管理信息系统的战略规划
- 介绍钱三强的
- 大学美育课件:中国艺术美-绘画美
- 小学1-6年级英语知识点归纳汇总
评论
0/150
提交评论