Openlayer—第一课:概述
n n n OpenLayers是一个用于开发WebGIS客户端的JavaScript包。OpenLayers 支持的地图来源包括Google Maps、Yahoo、 Map、微软Virtual Earth 等,用户还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers 中进行叠加,在这一方面OpenLayers提供了非常多的选择。
n n n OpenLayers是一个用于开发WebGIS客户端的JavaScript包。OpenLayers 支持的地图来源包括Google Maps、Yahoo、 Map、微软Virtual Earth 等,用户还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers 中进行叠加,在这一方面OpenLayers提供了非常多的选择。
目录nn一、瓦片地图简介nn二、LODnn三、瓦片计算nn3.1、切片方式nn3.2、瓦片数量计算nn3.3、瓦片坐标系nn四、分辨率nn4.1、墨卡托投影坐标系下的分辨率nn4.2、OpenLayers默认使用的分辨率nn一、瓦片地图简介nn 瓦片地图(切片地图)源于一种大地图解决方案,针对一整块非常大的地图进行切片,分成很多相同大小的小块地图,在用户访问的时候
地图样式是由 style 类控制的,其包含了地图样式的方方面面,例如,填充色、图标样式、图片样式、规则图形样式、边界样式、文字样式等,样式一般针对矢量要素图层。 矢量图层样式可以事先写好,写成静态的,矢量图层直接按照定义好的样式渲染,也可以动态使用样式的 set() 方法,但是要注意刷新矢量图层,重新渲染,否则动态样式不生效。
http://blog.csdn.net/gisshixisheng/article/details/41575833rn标题比较长,主要呢是实现以下几点:rn1、将shp数据导入到PostGIS中;rn2、Geoserver发布WMS服务;rn3、Openlayers调用Wms服务rn rn首先,下载安装软件。
本篇的重点内容是为了到达自己想要的区域高亮效果,利用openlayers结合turf.js实现地图模态层功能,效果图如下:rnrnrn实现思路rnrn利用turf.js提供的difference相差函数,计算最大四至和裁剪区域的差值,这里的最大四至即:(-180,-90,180,90),由于底图是墨卡托投影坐标系的,所以我的代码实现过程中把经纬度转换墨卡托投影坐标
一、问题来源分析:openlayers5.x以来采用的是ES6(ECMAScript 6,注:ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript 。详见:http://es6.ruanyifeng.com/#docs/intro)标准,里面有些新的语法如import、…
目录nn载入数据nn选择图层nn切图nn切图加载到服务nn载入数据nn打开【ArcMap 10.2】nnnn默认情况下,程序会弹出下图:nnnn这里面是之前打开的,可以直接双击,就可以打开图层了,不过比较慢,可以等会;如果出现的和我的不一样,那么,可以在【file】中的【open】中,打开数据。nnnn找到文件夹【MarsGIS_Equi0_v21】,然后打开红框中的文件。nnnn选择图层nn这里…
在Web地图应用开发过程中,最常见的事件之一就是使用鼠标在地图上移动,这里我们利用(一)中的地图服务,在此基础上创建一个鼠标移动的事件,代码如下:rnnn n Tiled ArcGIS MapServern n n n n n .mapn n width: 1000px;n height: 700px;n n n n n n
前言nn nn最近在学习开源地图库——Openlayers3,将自己的一些学习心得分享出来,第一次写文章,望支持。nn首先放几个链接,都是我学习过程中查阅资料用到的,新人接触这个值得好好学习一下:nn简书——Openlayer3入门指南nnOpenlayer3 基础教程nn开始你的第一个Openlayer3项目(导航栏的示例、API文档都很重要,新手一定要好好看哦)nn如何呈现一副地图就不在这里多…
在前文中,讲到了oL2中唯一值渲染的实现方式,在本文讲述ol2中渐变色渲染的实现方式。
根据经纬度在地图上添加标记 n n n n n n n html, body width: 100%; height: 100%; margin: 0; padding: 0; n n n n var basePath = ‘198.165.26.54’;n var jsonStr='”M
html代码一map.html:rnn n n Map n n n n n n nrnrnhtml代码二test.html:rnnnnnload mapnn function init()n var subframe = document.getElementById(“subframe”);n subframe.contentWindow.initM
OpenLayers是一个开源的js框架,用于在您的浏览器中实现地图浏览的效果和基本的zoom,pan等功能。OpenLayers支持的地图来源 包括了WMS,GoogleMap,KaMap,MSVirtualEarth等等,您也可以用简单的图片作为源,在这一方面OPenLayers提供了 非常多的选择。 要使用OpenLayers,您可以到它的官方网站http://www.open…
在opanlayers4官方API已经有一个方法:intersectsCoordinate(coordinate),用于判断一个点coordinate是否在闭合图形的内部,返回值为布尔类型的,true表示点在多边形的内部,false表示点不在多边形的内部。 n详细代码如下所示:nnnnvar geo = feature.getGeometry();//feture是几何元素nvar isIn = …
应用场景: 最近在开发过程中,有个需求,需要在天地图中画线,结束后获取对应的坐标集合,查阅 OpenLayers API 和网上的相关资料后得以实现,特此记录。
首先在vue中安装openlayes依赖,现在推荐使用ol,ol需要一个一个的引入,我嫌麻烦就直接用的openlayers,我把openlayrs定义为全局变量,下载完openlayers依赖包后,在main.js里面引入,nnimport ol from ‘openlayers;nn然后设置成全局属性nnVue.prototype.
OpenLayers 是一个专为Web GIS 客户端开发提供的JavaScript 类库包,用于实现标准格式发布的地图数据访问,echarts是百度的开源js图表库,下面简单讲解下如何在openlayers的地图‘贴’上echarts的图表。
简单理了一下OL3的图层体系,目的是为了以后在开发过程中如何管理图层(添加、删除、显示控制),如何在临时图层上添加自己的要素(方便在查询、定位、绘图等功能中使用),其他的结构在本篇幅中并不涉及,从顶层至下依次介绍。rn1 框架rnOl3是一个js的类库,对象的创建、方法调用符合js标准,因此对象的调用和其他常见的js调用一致。rn2 地图MaprnMap是显示地图用的,同时也是最大的容器,里面可以
使用Openlayers还是很容易实现的,代码如下: map.on(‘pointermove’,function(e) n var pixel=map.getEventPixel(e.originalEvent);n var feature=map.forEachFeatureAtPixel(pixel,fun…
目录nn一、示例简介nn二、代码详解nn一、示例简介nn 这个示例展示了如何将OpenLayers的几何图形渲染到任意的canvas元素上。nnnn二、代码详解nn ol.render.toContext()方法能够将任意canvas元素的绘图上下文对象封装成OpenLayers的ol.render.canvas.CanvasImmediateRender对象。nn ol.ren…
openlayers3自带的鹰眼缩略图控件功能很局限,想到自己动手去做,结果很容易就做出来了,这里主要用到的是两个map互相联动
OpenLayers 要素 事件 Examplen n n n #result n height: 60px;n width: 514px;n font-size: smaller;n overflow: auto;n margin-top: 5px;n n n n n Feat
参考代码://拖动交互nfunction addMoveInteraction()n var app = ;n app.Drag = function() nn ol.interaction.Pointer.call(this, n handleDownEvent: app.Drag.prototype.handleDownEvent,n …
感谢OpenLayers中文网的fengl同学,
在GIS项目实践过程中,需要实现各个功能区的叠加图层实现,以及设置它们各自的透明度,功能区分为1类、2类、3类、4a类、4b类等。每个功能区的加载均是通过一个json文件加载到map。要求可以单独查看某个功能区,并通过拖动滚动条可以控制每个图层的透明度。 n1.首先,在html5中通过input type= “range”可以实现滚动条的拖动,具体实现代码如下:nn<input type=”…
/** * 功能:删除选中的Feature,以免添加错误的Feature或删除修改错误的Feature * 使用:点击修改实体的button,使用键盘上的Dele键来删除 *///删除所添加的图形OpenLayers.Control.DeleteFeature = OpenLay
计划分析openlayers源码,待更新。。。
例一,给map类注册一个事件,查看文档有以下说明:rnRegister a listener for a particular event with the following syntaxrnmap.events.register(type, obj, listener);rnListeners will be called with a reference to an event object
由于使用了新地图瓦片,而改变了坐标系,使得定位有偏差,经过一系列的努力终于解决了这个问题。 问题出在了,坐标系范围和maxResolution系数上面。改为: maxResolution:156543.0339maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.
必须先删除clear layer的source再removenn nn nn
在做功能区图层全选多选时,正常图层的加载应该是2、3秒即可加载完毕,但是当选择某区域某类区时,竟然用了十几秒才加载出来,后来找出问题竟然是for循环中对json数据格式转换代码的问题,原代码是:nnnvar dataFeatures = msg.layernvar lilen = $(“#point_ul ul”).length;nclearlayerSource(pointLayer);ncle…
//mapnvar map = new ol.Map(…);n//获取图像nvar view = map.getView();n//获取一个经纬度的数组(两组数据)->[13417639.537659956, 3657508.94839583, 13434990.743080692, 3682503.8566450826]nvar arr = view.calculateExtent…
概述:rn本文讲述结合heatmap.js,在Openlayers中如何实现热力图。rn rnheatmap.js简介:rnHeatmap 是用来呈现一定区域内的统计度量,最常见的网站访问热力图就是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示。
Overlay 从名字看,是覆盖图、覆盖物的意思,主要的用途就是在地图之上再覆盖一层,用以显示额外的可见元素,可见元素一般是 HTML 元素,利用 overlay,可以将可见元素放置到地图的任意位置,形成地图上再浮动一层的效果。例如在地图上相应的坐标放置一个标志,标签,利用 overlay 都可以做到,具体来说,点击地图上某位置,在点击位置弹出弹出框就是利用了 overlay。
这是Openlayers3最新版本的API的访问地址:http://openlayers.org/en/latest/apidoc/nn这是Openlayers3历史版本的API的访问地址:http://openlayers.org/en/v3.19.1/apidoc/ol.html?stableonly=truenn备注:查看历史版本的API的时候,只需将最新版本API的访问地址的latest改…
ol.ViewnnnnIntroductionnnn ol.View 对象表示一个简单的地图2D视图。对改变地图的中心,分辨率和旋转起到作用。nnnnnThe View Statesnnol.View是由三个状态决定的;分别为center,resolution,rotation。每一个state都有相应的getter和setter方法。例如,center的getCenter和setCenter方…
原文地址:http://openlayers.org/en/v3.12.1/examples/attributions.htmlWhen the map gets too small because of a resize, the attribution will be collapsed. This is because the collapsible option is set to true
除了WMS地图外,OpenLayers可以直接添加Google Map, Microsoft Virtual Earth等地图。rn rn1. 添加google map的key 使用google map的数据需要google map的一个key。OpenLayers的examples里面有一个key,可以直接使用。
在调用自己发布的图层服务时注意在图层源属性中加入跨域。nnnew ol.layer.Image(n source: new ol.source.ImageArcGISRest(n ratio: 1,n params: ,n …
n nvar dx = 3;n nvar dy = 3;n nvar px, py;n nvar features = [];n nvar strategy, clusters;;n nfunction draw() n nvar ic = “
点在线上的移动n基本思路就是先将这条线切割成很多的坐标,然后这个点沿着这些坐标前进n这个代码是直接从业务代码Copy下来的,但是稍作了修改,加上注解,便于参考时理解nnfunction MoveOnLine(start,end,jsonobj)nnvar x = [parseFloat(jsonobj.startx),parseFloat(jsonobj.starty)];nvar
nnn n OPenLayers 3 examplen n
当鼠标滑过地图,我们会扫一眼鼠标的地理位置,至少要能看到经纬度,好确认当前的范围和地物是否处在正常的位置。这对于C/S应用来说,是最为常见的辅助功能,即使是在B/S中,这似乎也不是难事,比如谷歌地图等都能提供这个功能,但是我们也知道,这些地图数据是固定投影的,获取经纬度坐标的途径是单一的,而这也不是本文要考虑的内容。n在系统应用中,B/S结构的GIS系统会发布具有不同投影类型的地图数据,而在客户端
1.地图(Map):对应的类是ol.Map;2.视图(View):对应的类是ol.View,控制地图显示的中心位置,范围,层级等;3.图层(Layer):OpenLayers 3有多种多样用于不同业务的图层,每一种图层在实现上都对应于一个类,放在包ol.layer下面,之前已接触过的ol.layer.Tile就是其中的一种。OpenLayers 3允许多个layer重叠在一起,相互之间互不干扰,是…
直接使用ol4中的地图导出功能在我们的项目中可能会存在跨域问题,导致地图不能正常的转为二进制。rn解决方法:rn1 //自定义图层中添加crossOrigin,具体如下:rn var tdtTerLayer = new ol.layer.Tile(rn visible: true,rn source: new ol.source.XYZ(
进一步接触openLayers3,写下这一段学习的小节(以下简称ol)rnrn1.对openLayers3初步理解rn oL3是一套开源库,用于WebGis的开发(地图数据访问、地图操作)。包含了主流的JavaScript、HTML5及CSS技术,完美支持了dom,canvas和gis用到的webgl三种渲染方式,支持瓦片,矢量和在线,离线的数据源。rnrnrn2.对openLayers3深层次
刚看到更新了 就去GitHub找更新的新版本,跟从前一样有三个压缩包。上个版本我就想问。这么些个压缩包,他们之间有什么必然的联系么?还是有什么不可告人的秘密关系?rnrnrn 第一个是 release版本,里面包含了源码,和Demo代码,比较大。后两个是源码,不含Demo。后面两个压缩方式格式不同,.zip格式用于windows,tar.gzrn 格式多用于 Unix/linux MacOS 系统
Gisn /common/css/style.css”>n n
问题描述:点击选中多边形区域时报错:Uncaught TypeError: M.splitis not a function换成debug的ol文件,详细错误为:UncaughtGoog.asserts.AsserttionErrormessage: “Assertion failed: 4th instruction should be a string”, …. 解决方案:仔细回想,样式…
在前文中,讲述了在JAVA环境下如何将shp转换为GeoJSON,在本文,分别讲述在Arcgis for js,Openlayers2和Openlayers3中加载展示GeoJSON。
这篇主要讲到基于openlayers3实现查询分析功能主要包括:属性查询,几何对象查询,位置关系查询这三类。n 开发环境:openlayers3 geoserver postgresql+postgisn1.属性查询 其实属性查询没有什么要讲的,就是对于图层要素的的基础属性进行查询(例如名称,地址等等)这些查询就是简单的利用ajax进行请求后台,然后写SQL查询语句即可。这里就不多赘述了
n n n 本文内容默认已在PostGIS中添加了PgRouting扩展模块。n1. 数据准备n 路径分析功能是针对路网图层进行的空间分析应用,在将shp文件导入数据库之前,需要对其进行拓扑检验,主要是道路的自相交以及路段之间的道路节点的相离的检验。可以利用ArcGIS对文件进行拓扑的构建和检验,保证数据的准确性。n 利用PostGIS自带的工具将文件入库。如…
接着我们看一个比较长的例子,例子实现的是可以绘制图形,可以根据自己的设置打印地图 n我们先看显示效果是: n n由于ol3的api现在更新变化挺大的,所以自己运行的例子的时候注意版本是3.17.1 n例子中的解释比较详细,不具体进行展开介绍。本例子主要分为三部分,在js文件中已经隔开 n- 第一部分是地图的初始化,包括添加图层,添加控件 n- 第二部分加个标注点,点击显示位置的弹出框 n- 第三部分
在OpenLayers 3中,默认使用的瓦片地图的坐标系是如何定义的?经分析可知,OpenLayers 3的瓦片坐标系的原点在左上角,向上为y轴正方向,向右为x轴正方向。具体到地图上来讲,地球经过投影,投影到一个平面上,平面最左边对应地球最西边,平面最…
热力图的权重与颜色的关系的例子,选中feature获取其权重值,还需进一步研究。nn n Earthquakes Heatmapn
方法: rn设置map的options,由其中两个因素决定:maxExtent-最大地图边界;rnmaxResolution-最大解析度。 rn当maxExtent设置为地图的最大边界后,maxResolution设置为auto,那地图就占满DIV。 var options = rn controls: [], rn maxExtent…
rn rn 1.Map类rn Openlayers中Map类承载着我们的地图,所有你想做的事情,如移动、缩放、添加图层,都必须在Map对象的基础上完成。rn 在Openlayers中controls和layer对象都是属于map对象的,如果进行地图操作,需要连接到map对象上,因此…
rnrnrn Insert title herern rn rn rn var map = null;rn function init()rn var options = rn controls:[new OpenLayers.Control.KeyboardDefaults…
在实际项目中,好多地图不需要从第0级开始缩放,因为第0级地图太小了,没有实际意 义。那么就需要设置从中间某个级别开始缩放。该如何做呢。由于openlayrs2中没有直接属性进行控制,也因此需要自己注册事件通过监听事件来控制地 图的最小缩放级别。对于openlayers3来说,直接通过view的属性进行控制即可。rnopenlayers中需要注册缩放事件来解决,在该事件中监听缩放后地图的级别,当地图