Openlayers 根据检查的图层更改贴图大小的问题。

我是OpenLayers的新手,我已经开始从Geoserver构建一个结合Google tiles和我自己的wms的应用程序。代码示例: var hilirPerak = new OpenLayers.Layer.WMS("hilirPerak", "http://>>localhost:8080/geoserver/hilirPerak/wms", { workspace: 'hilirPerak', layer

Openlayers 找不到OL3 layer.Tile ZIndex函数

我正在尝试设置一个名为“landsat1”的wms层的索引。默认情况下,它在顶部绘制,我想按顺序向下移动它。 我试过了 landsat1.setZIndex(1) 但我得到一个错误“未找到函数”。 我正在使用OL3.11.0。根据,该函数是实验性的…但它似乎不适用于任何具有该函数的版本…其他函数如landsat1.getProperties()工作正常…为什么该函数不工作?还是有更好的方法设置wms层的zindex?将问题转移到GIS区域。我的任命

在openlayers地图上创建自定义画布

在传单中,一个插件,将创建一个HTML画布元素作为一个单独的层。该画布元素将在鼠标拖动时自动移动 在OpenLayers 4中有没有同样的方法?例如,在OL的容器中创建画布,并将该画布添加到图层列表中 谢谢 这绝对有可能。这本书展示了如何做到这一点。您要使用的组件是ol.source.ImageCanvas。它配置了一个canvas函数,用于为给定的范围、分辨率和大小创建画布 但是,如果您希望静态画布使用贴图进行平移/缩放,则ol.source.ImageStatic是您要使用的组件。有关示例,

在Openlayers 2中更改功能悬停光标

如何在openlayers 2中更改光标悬停功能?默认为“移动” 谢谢。您可以根据光标下方的功能,监听指针移动并更改样式 : map.on('pointermove', (evt) => { if (evt.dragging) { // the event is a drag gesture, this is handled by openlayers (map move) return; } const pixel = this.map.getEventPix

无法在OpenLayers中获得正确的圆半径

我在下面有一个jsfiddle,我试图创建一个半径为1600米的圆。我不认为我的投影正确,因为这个圆肯定小于1600米。在谷歌地图上测量,我想大约是1000米。我需要做什么来更正此问题请> 多谢各位 var中心纵向相关性=Lonlat的其他项目[-1.733014,51.982989]; var layer=新ol.layer.Vector{ 来源:新ol.source.Vector{ 投影:‘EPSG:4326’, 特征:[新ol.特征新ol.geom.CircleCenter纵向相关性,1

Openlayers 具有相同投影但不同栅格的两个XYZ图层。是否忽略了TileGrid范围?

我有两个带有自定义投影的XYZ源(EPSG:3059),我想同时显示两个层,外加一个OSM层。困难在于我的源的分辨率相差5倍(因此z=0时的平铺范围也不同),因此我不能对这两个源使用相同的平铺ID 我假设Projection对象只负责米和源坐标之间的转换(反之亦然),而TileGrid对象负责请求正确的X Y Z。因此我假设需要为两个源和两个不同的TileGrid创建一个投影。 然而,似乎完全忽略了TileGrid的范围,而投影的范围定义了将加载哪些tile 我手动计算了两个自定义源的磁贴x=0

Openlayers 用于在Web上可视化数据的平铺(服务器)机制

我希望构建一个简单的应用程序,允许在web上可视化图形。具体而言,我的目标是: 使用Gephi以各种缩放级别渲染图形 然后我希望将这些图像切割成瓷砖 我希望使用一个类似于谷歌地图使用的web组件,或者将这些层缝合在一起,并允许对图形进行平移和僵化 考虑到这一点,我认为这种方法可以应用于任何任意的数据可视化,其中需要在多个缩放级别上可视化数据,并且必须在服务器端进行图像渲染 我想知道是否有实现这种体系结构的标准堆栈(或者我所考虑的体系结构是否合理) 提前感谢。如果您只想在web上创建具有多个缩放级

OpenLayers:我需要在OnSelect中找出用户是否单击了其他功能或空屏幕

当触发ononselect事件时,我需要知道用户单击的位置(或内容) 在最好的情况下,可能会有一个名为onClickOut的事件处理程序 但我没看到 有人能提出一些解决方案或解决办法吗 谢谢 不考虑信用,整个例子是 您可以看到它,如果您还有什么需要做的,我们可以讨论它很好,谢谢。我还没有试过,但我想它会有用的。我试着创建两个新的OpenLayers.Control.SelectFeature(layer1)/2控件,但它不能这样工作。因此,我当时所做的是使用OpenLayers.Control

具有多种颜色的Openlayers ol.style.Text

有没有办法为openlayers 4+的ol.style.Text类设置多种字体颜色 我正在尝试做一些类似的事情 const label = new ol.style.Style({ text: new ol.style.Text({ text: '<color1>X</color1> other text', textAlign: 'center', font: '11px rob

Openlayers 如何获取要单击的线字符串单击Openlayer中从样式几何图形生成的任何平行线

在修改了上找到的参考链接后,我使用openlayer v5.2中单个要素对象的样式几何体选项在地图上生成了具有不同宽度笔划的平行线字符串 在样式函数中使用带有调用函数的几何体时,我不会获得样式的单击事件上的几何体。为此,我去掉了调用函数,并给出了固定的平行距离分辨率 所以现在在“singleclick”事件中,我能够获得所有样式及其几何体的特征。 但是在这里,map.on('singleclick',function(event){}).如何区分单击了哪一行或哪一几何体 我尝试单击事件点是否与直

OpenLayers:层不填充容器

我试图通过OpenLayers在页面上显示地图,它看起来还可以,但我注意到当我使用toBlob作为.png图像大小保存地图时是错误的。然后我研究了html代码,我注意到该层的实际大小与其div容器不同 Div容器为512x512像素,但图层为384x384像素。 层的变换矩阵的值为1.33333,但不是1 以下是截图: 我需要一种方法,使我的层正好适合它的容器大小,但我不知道如何实现这一点,迄今为止 <!DOCTYPE html> <html> <head>

如何仅在浏览器中限制openlayers全屏显示

在openlayers映射中单击全屏控件时,默认的openlayers全屏api覆盖整个窗口。是否有办法控制这种行为,并允许全屏仅在浏览器主体中展开,以便用户仍能看到打开的选项卡和地址栏。您需要使用js和css更改地图div。看看这些使用自定义控件的oerhaps示例,例如将包含map的div的高度和宽度设置为100%已工作。您需要使用js和css更改map div。请看这些使用自定义控件的oerhaps示例,例如,将包含贴图的div的高度和宽度设置为100%已工作。

具有OpenLayers的webgis应用程序的预定义结构

我想知道OpenLayers是否存在不同的“典型WEBGIS设计”(例如html结构), e、 g.类似于精心设计的图层选择(比这更好,我在图片中显示),一个传奇的地方, wms装载机和 有人能帮忙吗 非常感谢您,Kai在这里您可以找到一些不错的扩展。好的,OL5与ol-ext配合使用很好。 它是必要的,例如执行“npm安装openlayers ext” 然后这些模块可以实现如下 import Point from 'ol/geom/Point'; import ol_control_Prin

Openlayers 如何将鼠标滚轮缩放级别限制为View.resolutions中指定的级别?

我想将鼠标滚轮缩放级别限制为View.resolutions中指定的级别 我能做些什么来实现它 在视图选项中使用constraintresolution:true (c) 迈克 编辑: 如果您只想将ConstraintResolution用于鼠标滚轮缩放,则应在创建地图之前覆盖原型鼠标滚轮缩放中的handleWheelZoom_u函数: import { clamp } from 'ol/math.js'; import { zoomByDelta } from 'ol/interaction/

Openlayers 用于WMS层的带有viewparam的GeoWebCache

我刚接触Geowebcache。我正在尝试在GeoServer 2.1.3中使用内置Geowebcache功能。我的要求是使用Geowebcache来加速WMS请求的处理 如果我使用http://localhost:8080/geoserver/gwc/service/wms作为geoserver地址,它仅适用于我的默认参数值(即使设置或不设置viewparams也没有区别)。它不会更改veiwparams已更改的返回图像 如果我使用直接集成,它总是由geoserver提供服务。如何将geowe

Openlayers 多个过滤层上的WMSGetFeatureInfo

我正在使用OpenLayers开发一个主题地图,我的问题是我无法获得多个过滤(通过cql_过滤器)WMS图层的信息 相反,我得到的信息是“层和过滤器不匹配,您需要为每个层提供一个过滤器” 为每层提供一个过滤器的正确方法是什么 使用cql_过滤器参数时,必须为请求中的每个层提供一个过滤器表达式。过滤器应该用分号分隔,对于那些您不想过滤的层,只需添加“INCLUDE”作为过滤器表达式 您可以在以下位置获得更多信息:使用cql\u过滤器参数时,必须为请求中的每个层提供一个过滤器表达式。过滤器应该用分号

链接到旧的openlayers api

ol5最近发布了,但我仍在使用ol4。他们网站上的所有链接都指向最新的文档,但我需要4.6.5的文档。有人知道它在哪里吗? 我发现您可以用3.0.0以来的任何版本替换v#,以获取该版本的文档

Openlayers OLv5矢量层,动态源未渲染

从上周开始,我对OL是全新的,所以如果我错过了一些明显的东西,我道歉。它主要是从示例中拼凑而成的,但我很确定我理解这一点。您可以在此处查看我的代码,或者更常规地,在此处查看: 如果我创建了一个源为静态文件的矢量图层的地图(通过“url”属性),这些特性将按预期显示。如果我用相同的代码创建一个映射,其中唯一的区别是源代码是一个加载函数进行xhr调用,那么这些特性不会显示出来 在这两种情况下,我都在源和层上放置了侦听器,并触发了以下事件: 静态: precompose postcompose add

在openlayers中是否有自动发现epsg代码和proj4到geojson文件的方法?

我有一个项目来加载一些geojson文件,然后在openlayers地图中绘制。我对来自布鲁门诺/圣卡塔里纳/巴西(城市/州/国家)的样本文件做得很好,但当我上传来自巴西城市的新文件时,他们在地图上看到了位移 在上传文件到我的网站时,有没有办法自动定义proj4参数和epsg代码?实际上,页面只上传文件并用一个新名称定义它,而不改变它的数据。 当我试图上传圣安德烈/圣保罗/巴西数据时,它是在巴西的其他州绘制的,但采用圣安德烈城市格式 <link rel="stylesheet" href=

使用openlayers设置地图比例

如何在openlayers 4.4中使用“1:1000”或“1:25000”之类的输入值设置地图的比例? 我尝试了这个例子,但没有成功 比例仅在输出大小已知且固定的打印地图上具有精确含义。对于屏幕地图,浏览器和操作系统不知道显示器的物理尺寸,只知道它使用的像素数,因此屏幕地图的标称比例通常基于0.28mm(90.7142857143 dpi)的假定像素尺寸,而操作系统通常采用72dpi或96dpi。在本例中,屏幕上的比例尺假定为0.28mm像素大小,而与显示器无关,但在地图准备打印到已知物理大小

Openlayers 尝试群集多重几何体要素时发生断言错误

我有一个非常大的KML文件(8MB | 8300+功能),我需要一种离线加载的方法。经过一些研究,我喜欢使用OpenLayers的聚类方法,但它只适用于点: 层源对矢量数据进行聚类。使用点几何图形开箱即用。对于其他几何图形类型,或者如果不是所有几何图形都应考虑进行聚类,则可以定义自定义geometryFunction 如果我尝试对多边形使用该方法,则不会显示任何结果。因此,我尝试在缩小时“变换”点中的特征,并将这些特征显示为点簇,然后在缩放足够近时恢复为原始几何体。我找到了一些我依靠的。但现在我

如何在openlayers 6中群集不同类型的几何体?

我需要对一些具有不同类型几何体(点、线串和多边形)的特征进行聚类, 哪种方法最好?此外,当我缩放到单个要素时,这是使用要素本身适当样式的最佳方式(如多边形、多边形等)。簇源必须具有处理非点要素的几何函数。最基本的方法是返回数据块中心的点 geometryFunction: functionfunction(feature) { return new Point(getCenter(feature.getGeometry().getExtent())); } 也可以使用标签点(线串的中点和多

Openlayers EPSG:4008层未显示

我有一张带有OSM和Google基本层以及EPSG:4326覆盖层的地图。现在我也在尝试将其他EPSG的叠加添加到我的地图中。EPSG:2333的覆盖层显示良好,没有问题。然后我尝试添加一个带有EPSG:4008的层,但什么也没有显示。我在openLayers论坛上发了帖子,并被告知要研究proj4js项目(顺便说一句,非常感谢!)。我尝试过使用它,它看起来很有希望,但它对我来说不起作用:( 在我的body标签中,我有脚本 <script src="./OpenLayers-2.10/Op

带有Geoserver和Openlayers的墨卡托投影世界地图

我正在尝试使用墨卡托投影在我的地理服务器上渲染世界地图形状文件。我曾尝试在Geoserver上声明SRS,并在Openlayers中定义3785或900913的EPSG投影,但没有成功。 我还尝试使用ogr2ogr重新投影shapefile,但结果略有偏差 原件: 转换: 下面是使用的命令: ogr2ogr -t_srs EPSG:3785 target.shp source.shp 我不熟悉这项技术&映射概念。任何指点都将不胜感激 此操作的geoserver指针是连续映射换行 在geose

Openlayers 如何处理OSM上的覆盖WMS问题?

我试图在OSM底图上覆盖WMS,但在zoom时没有显示WMS,而是在zoomToMaxExtent()上显示WMS;它被显示。现在我想以OSM的缩放显示WMS。我的WMS EPSG:4326。 代码如下: var layer = new OpenLayers.Layer.OSM("OpenStreet Map"); map.addLayer(layer); var mah2 = new OpenLayers.Layer.WMS("Nature Layer",

选择功能控制OpenLayers

我一直在使用OpenLayers,我制作了一个图层树(所有图层都是矢量图层),所有这些图层都有功能,我想要的是通过选择控件选择这些功能 我使用了“选择功能”控件,但问题是,当我关闭其中一个图层时(我正在从地图中删除该图层以将其关闭),图标仍然存在,就好像它根本没有关闭一样… 我尝试了几乎所有的事情,我不知道为什么会发生这种情况 有人知道如何解决这个问题吗?每次停用控件时,您可以删除层中的所有功能,而不是删除层。请显示相关代码,如果不是所有代码,我们可以帮助调试。

Openlayers 如何根据KML数据计算地图的中心?

因此,我使用openlayers和几个基本地图层(google、bing、osm),我有一个KML层,到处都有位置标记。计算地图中心和最佳缩放级别的最佳方法是什么 谢谢大家! kml代码段: <Placemark> <name>foo</name> <description> foobar </description> <Point> <coordinate

&引用;TypeError:this.options为空";在OpenLayers.Protocol.HTTP‏;

我正在使用OL2.11和GeoExt1.1。在测试和修改这个GeoExt示例之后,我在销毁和读取新协议方面遇到了问题,我在firebug中得到了“TypeError:this.options is null HTTP.js(第180行)”。我从第180行了解到,新的选项(在新协议中)不存在,不确定这是否是问题所在以及如何解决问题。这是原始协议(在FormPanel外部创建): 这是创建新协议的FormPanel末尾的代码: buttons: [{ text: 'Searc

如何更改OpenLayers样式?

我对网络地图非常、非常陌生。我有一个OpenLayers地图,由PostGis数据库中的形状文件制作,有一个矢量图层,它有默认样式(GeoServer SLD),但我想在用户单击“刷新”按钮时更改矢量图层的样式。我在网上搜索,没有找到简单明了的例子。任何人请帮助我,或者可能有人谁想做同样的,并找到了这个简单的教程?任何帮助都非常感激 <script type="text/javascript"> var map; function init() { var b

使用OpenLayers加载GMLv3

我将问题改写为更具可读性: 我看到GML格式比KML更“进化”。我说得对吗?哪种格式更标准、更受支持、更方便投资 我在这里尝试了这个示例()尝试加载一个定义如下的GML v3循环: <gml:featureMember xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmls

Openlayers WMS层作为CQL过滤器上的变量?

我已经成功地使用了CQL过滤器示例。 然而,我想进一步开发它,第一个目标是允许用户选择要过滤的层。为此,我在html表单上添加了另一个字段,其中列出了所有可用层。 现在的问题是:如何使用该字符串作为CQL filter函数的变量? 我的代码如下所示: 函数更新过滤器{ var cql=document.getElementByIdcql; //使用CQL解析器进行简单的过滤器验证 var format=new OpenLayers.format.CQL; //如果存在过滤器,请将其卸下 //当存

如何将OpenLayers 3与Proj4js结合使用

我正在做一个地图查看器项目,在这之前使用了openlayers 2。现在我必须使用OpenLayers 3和map viewer应用程序应该支持许多不同的投影,因为我有来自不同来源和投影的wms和wfs层。我找到了使用openlayers2和proj4js的示例。但我找不到使用ol3和proj4js的明确示例。您的建议是什么?此示例演示如何将proj4js与ol3结合使用: 基本上,在OpenLayers 3中使用proj4js是透明的。您需要首先在proj4js中抛出srs定义,然后可以立即使

Openlayers 3相当于Openlayers 2离线存储

我找到了这个链接:你可以使用openlayers 2进行离线存储。这对Openlayers 3仍然可行吗?我读了他们的文档,ol.control不再有CacheWrite和CacheRead。。我还是个初学者,所以我希望有人能帮我。谢谢 没有OL3等价物,您可以尝试使用TileStache,并使用保存在ol.source.XYZ上的Tile

Openlayers zoomToExtent

我使用openlayers根据lon和lat列表绘制一些边界,使用以下代码 var style = OpenLayers.Util.applyDefaults({ label:areaName, fontColor: "black", fontSize: "15px", fontFamily: "Arial", fontWeight: "bold",

Openlayers 如何将地图上的两点线投影成曲线

就我所知,OpenLayers中没有内置的功能,可以将两点的直线投影成地球曲率下的曲线 当我得到一条直达马达加斯加的路线时,这是一个问题: 对于这个问题,前端是否有任何解决方案,我在OpenLayers中遗漏的任何功能,或者是否有任何第三方解决方案来计算这个问题 我知道这种计算在前端很困难,而且还取决于两点之间点的分辨率。我不相信openlayers有解决这个问题的打包解决方案。处理这个问题有多种选择,一种是使用javascript获取两点并返回表示大圆路径的geoJson路由 使用库(如),

防止OpenLayers 4中静态图像中像素之间的颜色插值

使用OpenLayers 4.6.5,我创建了一个带有ImageStatic源的图像层,该源位于地图的投影和地理参考中。所以,在我选择的投影中,在地图背景上显示这幅图像并没有问题。我还关闭了图像平滑功能,以便通过预合成方法(我在前面的问题中发现)放大图像时显示单个像素。然而,放大后,我相信OL正在创建过渡色或在图像中的主要颜色停止之间插入颜色。这是不可取的,因为我试图构建的页面将在鼠标上方有一个与图像中的颜色相对应的值读出。在图像处理软件中显示图像并放大不会显示此行为。比较放大的图像: 来自图像

OpenLayers:投影中的单位转换

我有一个以毫米为单位的数据集,但我的投影是以米为单位的。 现在有人知道如何解决这个问题了吗 我在投影中尝试了“+units=mm”,但没有效果 谢谢 BR.把它钉死了 在投影定义中添加“+单位=毫米+至米=0.001” 第二个问题出现了:轴反转 将“+axis=neu”添加到def中 一切都好。除以1000。我是个懒汉。我不想解析我的几何图形。投影应该知道这一点,这就是为什么我试图将单位设置为mm。

从OpenLayers 2 WMS层获取像素颜色

我需要从OSM上添加的图像层获取像素颜色 var canvas = document.createElement('canvas'); canvas.width = img.width; canvas.height = img.height; canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height); x=e.x; y=e.y; useCanvas(canvas,img,function(){ //

什么';这是更新功能的最佳方式;客户端openlayers中的位置和方向?

我有很多特性(数千个),其中一些(~数百个)会改变位置/方向/状态。因此,我尝试用以下两种方法更新图层/地图: 我通过setCoordinates更新:(数据通过socket.io) feature.getGeometry().setCoordinates(ol.proj.transform([data.longitude,data.latitude],'EPSG:4326','EPSG:3857') 我创建了一个包含所有特征的全局数组,并设置了一个间隔(5秒),清除矢量源,再次从全局数组添加特

OpenLayers 6添加制造商标签或文本

刚开始使用OL(v6),我一直在为地图中的标记添加标签。有什么简单的方法可以在标记附近显示标签/文本吗?(例如本例中的“点1”和“点2”)。 谢谢你的帮助 这里是我用来添加标记的基本方法: const p1 = new ol.Feature({ geometry: new ol.geom.Point(ol.proj.fromLonLat([-115.20, 38.])), name: 'uno', }); const p2 = new ol.Feature({ geometry:

Openlayers 从Internet从Amazon E2C访问地理服务器

需要通过Internet访问我在Amezon E2C上的GIS网站的帮助 我在Amazon E2C VPC Windows 2008实例的8080端口上运行Geoserver,网站使用openlayer,geoext通过IIS托管,我的E2C有私有IP 10.#.#.70,我在openlayer代码中使用它来引用WMS层,如下所示 parcel_boundary = new OpenLayers.Layer.WMS( "GEO:parcel_boun

Openlayers 如何从顶点创建向量

有没有办法从顶点列表创建向量对象?基本上,我想做的是能够在地图上绘制一个多边形,将该多边形的顶点保存在永久存储中,然后重新绘制。我能够保存多边形的边界,并使用这些边界重新绘制向量,但我得到的只是多边形周围的一个框。除了存储顶点列表之外,我还接受其他想法,这似乎是最好的方法。您想要向量层 然后,您可以使用GeoJSON来序列化功能 要反序列化它们,请使用read var features = yourVectorLayer.features;

Openlayers 没有显示标记

我已经导出了OSM地图。使用maperative制作瓷砖。现在我想在特定位置添加标记。上面是执行此操作的代码。标记不显示。请提出建议。我从网上的一个示例中获取了代码 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <meta http-equiv="content-type" content="text/html; charset=iso

topojson数据未在openlayers中呈现

我正在尝试将topojson文件加载到openlayers中 我使用来自的topojson文件 当我画南美洲时,它确实起作用: 但是,当我将源url更改为北美或欧洲的url时,它不起作用,例如大洋洲就起作用 例如: 我测试了其他来源的一些topojson文件,有些确实被绘制了,有些则不会,我看不出这些文件之间有多大区别,也找不到哪里出了问题 在代码笔中查看控制台时可以看到错误。当您使用ol-debug.js而不是生产版本时,调试更容易: VM1668 ol debug.js:52808未捕获

OpenLayers 4.6.5中心不工作

中心不工作了 中心35.689634139.692101位于日本东京。 但是,它不起作用 谢谢,35.689634苹果和39.692101香蕉不是东京的正确坐标。每个坐标都有一个特定的投影,没有它,数据就没有意义 视图也有一个投影,默认为EPSG:3857。您的坐标位于EPSG:4326(WGS84)中 投影。默认值为EPSG:3857(球形墨卡托) 第二个错误是您混合了X和Y,它应该是[139.692101,35.689634] const center=ol.proj.transform

  1    2   3   4   5   6  ... 下一页 最后一页 共 25 页