在AJAX应用程序中使用Openlayers绘制点要素时,IE8中的参数错误无效

我想请求一些帮助,因为我一直在努力解决一个仅在IE8中出现的代码问题。 您可以查看演示页面,该页面在上演示了该问题。正如您所注意到的,它在Firefox、Chrome、Safari中运行良好,但在IE8中,它会触发openlayers.js第684行中的Javascript错误“Invalid Argument”,字符178 本页首先初始化openlayers地图对象,并声明一个空的cityLayer矢量图层,稍后我们将使用该图层绘制点。 链接“ShowCity list”异步调用并将其插入DO

openlayers多边形显示差异而非并集

在OpenLayers中,我使用以下形式的代码创建了一个由两个线性对象组成的多边形(这在Java+GWT中,但同样的原则适用于JS): List linearRingList=new ArrayList(); 列表点1=新的ArrayList(); ... 填充点1。。。; 添加(新的线性化(点1.toArray(新点[points.size()]))); 列表点2=新的ArrayList(); ... 填充点2。。。; 添加(新的线性化(点2.toArray(新点[points.size()]

Openlayers:属性中x-y位置处的GML标签多段线

我有一个在QGIS中生成的多段线的GML文件,我正在OpenLayers地图中显示该文件。在QGIS中,通过为每条多段线指定属性x、y和r(横向长度和旋转角度),可以整齐地控制多段线上标签的位置和旋转。我的问题是——有可能在OpenLayers中复制这一点吗?目前,下面的代码将显示多段线,指定线颜色(从属性)并标记线的端点,但我无法找到使用x、y、r属性定位和旋转标签的方法,无论是使用当前图层中的可用标签样式类,还是通过在隐藏点上创建标签的新地图图层。或者,是否有其他标记多段线的方法,例如动态标

如何将geojson点添加到openlayers 3/4地图,并使其可单击以打开包含属性的弹出窗口?

使用openlayers 3/4,我在绘制仅包含点的featurecollection时遇到问题。我想做的就是在地图上画一个点,当你点击它的时候,一个弹出窗口就会出现,它会显示一个属性 我得到的错误是: core.js:1448 ERROR-TypeError:a.Yf不是函数 在ol.js:152 我的代码是: let points = { "type": "FeatureCollection", "features": [{ "type": "Feature"

Openlayers 从';ol/层/层';

我试图复制这个开放层示例: 但是,我想使用下载的完整OLV5.3.0版本库。到目前为止,这已经奏效,示例使用: import VectorLayer from 'ol/layer/Vector'; var vectorLayer = new VectorLayer({}); 我可以使用: var vectorLayer = new ol.layer.Vector({}); 但是,我无法使用上述方法复制以下内容: import Layer from 'ol/layer/Layer'; var

我可以在OpenLayers中自定义多边形的背景吗?

我可以使用多边形上的OpenLayers自定义背景(例如,使用图像) 感谢您的回复所有WFS/矢量样式属性都已打开 根据该链接,不能为多边形设置背景图像。尝试在服务器端进行,如果您使用MapServer,它是可能的。好的,问题和答案都很老,但没关系。 您现在可以在OL 2.13.1中使用此SnipSet: var _styleMap = new OpenLayers.StyleMap(); var _ruleDef = [new OpenLayers.Rule({ symbolizer:

Openlayers map.removeControl()错误

我无法从地图中删除编辑工具栏。我不明白为什么这个代码不起作用: var editingToolBar = new OpenLayers.Control.Panel({ displayClass: 'customEditingToolbar', allowDepress: true }); var draw = new OpenLayers.Control.DrawFeature( newShape, OpenLayers.Handler.Polygon, {

GeoServer WMS赢得';不能用OpenLayers加载

我知道网上有很多关于这方面的帖子,但我无法将GeoServer中的WMS层加载到OpenLayers中。OpenLayers将该层添加到“层切换器”中,但却看不到它。我不确定这是否会产生影响(我不知道会如何),但我的图层存储在PostGIS数据库中,我可以在GeoServer的图层预览中很好地查看它。该层位于EPSG4326中,我知道这是OpenLayers的默认值,我正在将其添加到OSM基础图中。这是我在GeoServer图层预览URL中的完整URL: http://localhost:808

Openlayers openlayer使用策略更改要素属性

我将特征的属性值更改为自定义策略,但在绘制特征时,特征不采用新的属性值 这是我正在做的测试: OpenLayers.Strategy.LabelChange = OpenLayers.Class(OpenLayers.Strategy, { activate: function() { var activated = OpenLayers.Strategy.prototype.activate.call(this); if(activated) {

Openlayers 如何使用openlayer 3加载图像并扩展它以适应绑定

我正在使用OpenLayer 3将图像加载到图层中。有些图像比容器大小大或小 如何缩放正在加载的图像以适合容器内部 我在开放层官方网站上找不到相关的例子 谢谢。我对您的确切问题有点困惑,但是您可以通过设置imageExtent使图像在其自身层内的特定范围内。下面是一个将图像的四个角设置为地图上某个位置的示例。这和你想做的相似吗 var imageLayer = new ol.layer.Image({ source: new ol.source.ImageStatic({

Openlayers 如何将视图位置与动画结合起来?

我想实现一个“跟踪”地图视图,其中当前位置不在地图的中心,而是从底部到地图高度的1/4(就像标准导航系统处于跟踪模式)。 我发现这是与[centerOn]()一起工作的,将当前GPS坐标定义为“坐标”,将“位置”定义为地图高度的1/2和1/4 现在,我想添加动画,在GPS更新之间进行平滑过渡 我用[animate]()尝试过这一点,从动画的角度看,它确实很好,但不能定位在1/4高度。 有没有办法将两者结合起来?一种方法是使map div溢出,使中心显示在可见部分高度的1/4处 var-map=

Openlayers 使用绘图交互完成绘图后,如何删除要素?

当我使用绘制交互完成绘制时,该特征将显示在地图上 我不希望该功能显示在地图上 我想在绘图完成后删除该特征 我从抽屉事件中删除了该功能,但它仍然显示在地图上 什么时候应该删除该功能 var draw = new ol.interaction.Draw({ source: source, type: 'LineString', style: style, freehandCondit

如何使用google earth底图绘制openlayers功能

尝试(最终)在谷歌地球插件底图上加载标记、向量和WMS。谷歌地球似乎“与他人相处不好” 如果我以“谷歌方式”实例化地图: createInstance('map',initCB,failCB) 我得到了一个谷歌地图,我可以在其中添加谷歌地名,但我不能将该实例传递给OpenLayers 使用以下命令: map = new OpenLayers.Map('ol-map'); map.addControl(new OpenLayers.Control.LayerSwitcher()); var gp

OpenLayers:混合固定和可拖动功能

我正在尝试创建一个OpenLayers UI,它具有两个基本功能: 地图上有固定的特征,当用户将鼠标悬停在固定特征上时,会在页面上获得附加信息(而不是地图上的弹出窗口) 有一个可拖动的参考点,用户可以在地图上移动 我现在已经让每一个独立工作。我有两个向量层,一个用于固定特性,一个用于可拖动特性。第一层有一个OL.Control。使用{hover:true}选择feature控件,第二层有一个OL.Control.DragFeature控件。但是,当我启用DragFeature控件时,Sele

OpenLayers更改控件上的层

我想更改OpenLayers.Control.ModifyFeature控件的图层 我尝试完全移除控制器,然后基于新层添加另一个控制器。 我通过使用如下循环直接更改了ModifyFeature的图层属性: for(var i = 0; i <= 10; i++) { if(document.getElementById('verksamhet').selectedIndex === i) { controlList.modifyFeature.layer = w

使用OpenLayers在Google地图上进行高程检查

如何使用OpenLayers在地图中查找特定陆地区域的高程?您可以使用Google服务调用在世界上查找特定区域的高程谢谢您的帖子。我在其他地方搜索过同样的结果。刚才我明白了。我浪费了过去一年的时间来寻找这个愚蠢问题的答案。棒 极 了

在OpenLayers中添加可单击的功能

我想将特征添加到向量层,然后单击该特征以显示有关该特征的信息。有人能帮我介绍一下吗。您可以显示一个弹出窗口来显示信息 将包含功能信息的属性设置为“name”,如下所示: var feature = new OpenLayers.Feature.Vector( new OpenLayers.Geometry.Point(specify your points here), {some:'data'}, {externalGraphic: 'image for your feature', gra

如何从openlayers矢量特性中获取DOM元素

(我在这篇文章中搜索了一下,但没有多大成功。他们似乎只解决了事件的问题。) 我们的网站正在使用qTip2作为工具提示,我想在我的向量层中有一些功能的弹出窗口。为了简化操作,我想使用qTip2工具提示而不是openlayers弹出窗口(这样我们就可以使用自己的样式了) 创建特征时,我需要对DOM对象的引用,以便将qTip2工具提示附加到该对象: function onFeatureCreate(feature){ var elem=? $(elem).qTip2(...); }

更改OpenLayers(使用OSM贴图)中平铺的外观

我想使用OSM地图,我决定使用OpenLayers 我看到了一个例子: 我可以得到如下结果: 但我希望我的地图看起来更像这个: 我指的是样式、颜色和细节,不是控件(我知道如何添加自己的控件、标记等) 我想做一些更改,例如:将背景变成绿色,将建筑物的底色改为灰色,并用1倍的黑色轮廓,将主要街道的黄色去掉,隐藏火车轨道和停车场等 如何实现它?所有这些更改都必须通过OSM地图的样式化来完成,并且不能在“后处理”中完成(例如,可以在获得地图后将整个地图更改为灰度) 我的示例代码(基于其中一个Open

Openlayers 如何仅与ol铯同步地图上下文(边界框和缩放级别)?

我正在编写一个页面,其中2D和3D地图并排显示,如中所示。可以在2D和3D中更改底图(彼此独立),也可以在2D和3D中打开和关闭其他图层(彼此独立) 如上所述,ol铯同步: 地图上下文(边界框和缩放级别) 光栅数据源 二维和三维矢量数据源 地图选择(选定项目) 地图和全局视图之间的动画过渡 我想创建自己的同步器,它只同步移动(地图上下文),而不同步光栅或矢量图层。所以我想创建自己的同步器,但不知道该怎么做,当我只想同步地图上下文时。这就是我正在做的: var ol3d = new olcs.

检查openlayers中多边形内部的坐标/位置

我有一些代码,可以用来检查多边形内部的位置或坐标。问题是,它可能有10000个或更多的位置,这会导致性能问题,而map的速度越来越慢。请在下面找到我的代码: places.forEach(p => { this.isInsidePolygons(p.latitude, p.longitude) }) isInsidePolygons(latitude: number, longitude: number): boolean {

Openlayers概览贴图旋转方向错误

使用OpenLayers 6.1版,旋转贴图图标和概览贴图边界框会朝相反方向旋转。地图边界框在概览地图中旋转,这是对第5版的改进,但方向错误。如果它在同一方向旋转,框将不会显示主地图覆盖的区域。如果将示例地图旋转45度,使其从西班牙北部延伸到德国中部,您可以看到效果,您完全正确,我道歉。谢谢

Openlayers 开放层-GeoJSON错误投影

我在加载这样的GeoJSON时遇到了一个问题: new OlLayerVector({ source: new OlSourceVector({ url: layer.url, format: new ol.format.GeoJSON({defaultDataProjection: dataProjection, featureProjection}) }) }); 尽管指定了EPSG:32632的投影,但加载的特性占有率很差,而且

尝试刷新OpenLayers上的TileLayer

我有一个TileLayer,TileWMS源代码如下: this.imageLayer = new TileLayer({ source: new TileWMS({ url: url, crossOrigin: "anonymous", params: params, serverType: 'geoserver', transition: 0, }), }); this.map.addLayer(this.ima

openlayers中锚定弹出窗口的偏移量

我使用的是Openlayers-2.12版本。 但锚定的弹出窗口偏移无法正常工作。它在地图的另一半显示左侧的弹出窗口,尽管我已经将相对位置设置为“tr” 有什么帮助吗?我在回答自己的问题时认为这可能会帮助别人。 如果我只使用弹出窗口而不是锚定弹出窗口,则效果很好。它会出现,而不是偏移属性。它们允许访问用于计算x,y位置的函数 popup.calculateNewPx = function(px){ // modify OpenLayers.Pixel object here re

Openlayers 使用OpenLayer在地图外的不同div中拆分图层开关

我有一张地图,上面有很多poi图层。此POI按类别(即:食物、睡眠等)和子类别(即:中餐厅、意大利餐厅等)排序 我希望在地图外为每个类别设置一个div,其中包含显示/隐藏相应图层的子类别按钮列表 现在,我所能做的就是在一个单独的div中显示层切换器 layerSwitcher = new OpenLayers.Control.LayerSwitcher({'div':OpenLayers.Util.getElement('customlayerswitcher')}); 您的帮助将非常感激:)

OpenLayers 4.6.4添加/删除层事件

在地图中添加/删除图层时是否会触发事件 我通过map.getLayers()组看到了一些东西,但它似乎只触发了“更改”事件,不包含添加或删除的层。请尝试层上的属性更改事件。当层的属性发生更改时,会触发该命令 map.getLayers().on("propertychange", function(e) { // triggered when layer added or removed }); 代码笔: 或在每个层上设置change事件 layer.on("change", func

Openlayers 多个世界的特点是出界

当我在OL中使用缩放级别0时,我可以看到多个世界。对我来说,似乎只有一个世界是具有正确坐标的“正确”世界。当我在左边的第一个世界上绘制点要素时,我无法转换它,并且坐标不是真实世界的坐标。我只能在第三世界从左边画的时候翻译这个点。 我觉得这有点奇怪。为什么OL显示了多个世界,而其中只有一个是正确的?你能做点什么让每个世界的坐标都一样吗 这是一个可以测试行为的小提琴: 代码片段: var-map=新的ol.map({ 目标:“地图”, 图层:[ 新ol.layer.Tile({ 来源:new ol

OpenLayers-HTMLdiv覆盖

我使用OpenLayers在标准HTML页面上显示地图,我想创建一个位于地图顶部的div。但是,div似乎总是被地图分幅遮住 我相信有一种方法可以将元素添加到映射本身,但在这种情况下,这不是一个可行的选择,因为div可能会部分浮动在映射上,部分浮动在其他页面元素上 这是基本的HTML。为了实现这一点,我需要向任一DIV添加哪些CSS值 添加一个z索引 另一种内部方法是使用此css: div.olMapViewport { z-index: 0; } 根据需要编辑此文件 <

使用Openlayers和GEOServer显示要素名称

我试图在加载时在地图中显示要素名称(例如:建筑名称) 我们如何使用GeoServer在OpenLayers中显示这些内容 谢谢, Ashok您需要使用geoserver中的样式为功能定义TextSymboler。转到geoserver管理-->样式-->添加新样式 添加一个TextSymblolizer,如下所示 <sld:NamedLayer xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.

控制Openlayers贴图的外部超链接

我有一个定义如下的基本映射(伪代码) 在map.addLayers调用之后,有一个displayData(theid),我想从html文档的主体中调用它,问题是我无法调用该方法。如果将onclick事件绑定到 JavaScript具有功能范围,这意味着displayData从外部看不可见 Ext.onReady(function() { ... stuff here is executed but is not visible from outside } 要解决此问题,您可以在其外部声

为什么可以';当我可以使用openlayers angular指令时,我是否可以让功能显示出来?

试着用一张相当简单的地图站起来。我使用的是openlayers angular指令,同样的http请求和层设置也在工作(geojson特性在雄蕊层上方的一层上显示为红色向量)。现在,我决定我想要一个“香草”openlayers设置(见下文),我只能让雄蕊层显示出来。我会错过什么 让olMap=document.getElementById('olMap'); 让parcelVectorSource=new ol.source.Vector(); 让map=newol.map({ 目标:olM

Openlayers 多个图层上的WMSGetFeatureInfo

在openLayers 6.4.3中,从多个wms层获取信息的方法是什么?我在关于OL3的回答中看到了这一点 var wmsSource = new ol.source.TileWMS({ url: 'https://ahocevar.com/geoserver/wms', // Add as many layers as you like here!! params: {'LAYERS': 'ne:ne', 'TILED': true}, serverType:

如何将图层添加到OpenLayers,但不在LayerSwitcher控件中自动添加图层?

我有一个添加了LayerSwitcher控件的Openlayer web地图。我需要这个来切换我的一些图层。但是我也在添加和删除一些图层,它们是暂时的,我不希望它们添加到LayerSwitcher控件中。 那么,有没有一种方法可以将图层添加到OpenLayers中,但不会自动添加到LayerSwitcher控件中?解决了这个问题。我需要在图层选项中添加“displayInLayerSwitcher:false” 解决了这个问题。我需要在图层选项中添加“displayInLayerSwitcher

在地图上显示地址并在OpenLayers.js中获取地理坐标

可以在openLayers中搜索地址吗 另一个问题是:那么有可能得到这个地址的地理坐标吗 或者可以从我用鼠标单击的位置获取地理坐标?仅OpenLayers不允许您搜索地址,但您可以使用外部web服务(如Google web services)来完成此操作。然后在OpenLayers上显示此信息 关于您的最后一个问题,OpenLayers可以为您提供鼠标单击的坐标。这里您可以找到一些适当的扩展:

使用OpenLayers实现多边形数据的可视化

我有370万个小多边形,我想从中创建一个热图。因为它有很多点,所以从JavaScript数组读取并在地图上绘制是不可能的。有什么有效的方法吗 谢谢。IMHO,370万个多边形对于Javascript来说看起来有点重。一个好方法是在服务器上生成热图。如果您使用的是Geoserver,则可以按照官方文档中的说明进行操作。请记住,使用渲染转换需要安装(但不需要启用) 配置热图表示后,OpenLayers客户端只需使用该层。多边形数据存储在哪里?您可能可以使用geoserver创建图层。数据存储在geo

Openlayers 3中的过滤功能

当我使用Openlayers 2时,我可以组合各种过滤器,如Openlayers.Filter.Comparison.EQUAL_TO或Openlayers.Filter.Comparison.like,然后使用WFS协议和回调函数根据用户输入和那些本机WFS过滤器获取功能 在Openlayers 3中,我没有看到那些本机过滤器 那么,现在,我如何根据用户输入获取特性呢?我得到输入并向PostGIS进行老式查询?我重置了ol.Vector源url 请提供一些帮助或教程 谢谢您应该更改OpenLa

在OpenLayers 5中向地图添加要素

我有以下HTML代码 <html> <head> <title>Vector Style Examples</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdn.rawgit.com/o

Openlayers 在多个地图中显示鼠标指针(同步鼠标指针)

当我把鼠标指针放在一张地图上时,我需要鼠标指针同时在另一张地图上可见(当然在同一位置显示)……所以在地图之间同步鼠标指针 如何实现这一点?在windows显示器上只能有一个真实的鼠标指针,但可以在每个地图上显示一个共享功能,该功能跟随任一地图上的真实指针。如果你想的话,你甚至可以用一个图标使它看起来像一个指针 var-white=[255,255,255,1]; VarBlue=[0153255,1]; var宽度=3; style=新的ol.style.style({ 图片:新ol.styl

在Openlayers中打开闭合多边形以继续绘制-撤消功能

撤销前 撤销后 我正在尝试使用Openlayers创建一个撤消功能,在该功能中,我可以打开一个绘制完成的多边形并再次继续绘制该形状。 不确定如何为多边形的每个点实现撤消功能 你能帮我找到解决办法吗 我在一些使用Openlayers的第三方库中看到了撤销功能,在这种功能中,当我们撤销时,整个形状将从地图中删除。 此外,我在Openlayers中看到了修改功能,在Openlayers中我可以向现有形状添加更多点并更改形状的结构。可以通过使用交互中的geometryFunction选项来使用现有特

使用zoomify对OpenLayers图像进行深度缩放

如何使用Zoomify深入缩放OpenLayers图像 根据答案的提示,我能够实现缩放功能,但maxZoom在此不起作用,我无法进一步放大图像 DZI图像分析器 映射对象 如何删除缩放限制?我已经解决了 相同的代码: function loadUrl(url) { return new Promise(resolve => { const layer = new ol.layer.Tile(); const last = url.lastIndexOf('.');

如何在openlayers的ol.source.xyz中以post格式发送url?

我使用openlayers版本6 我使用ol.layer.Tile定义显示地图的源 源是使用ol.source.XYZ定义的 但是,由于openapi的apikey包含在我必须发送到服务器的参数中,所以我需要在post方法中发送它 这不受支持吗?可以使用tileLoadFunction完成 var baseMap = { testmap : new ol.layer.Tile({ visible : false, sourc

使用openlayers.layer.wms.post和图例动态设置geoserver wms的样式和过滤

我已经在地图中定义了一个WMS.Post图层,建议用于动态样式设置,因为我有一个依赖于我所要求的WMS图层特性的参数化过滤器。 问题是我需要在LegendPanel GeoExt对象中设置一个图例。我看到,当图例面板向geoserver请求图例时,会使用GET方法调用服务,当给定的sld样式太长时,调用失败。如何强制面板使用POST方法 这就是我的legendPanel的定义: var legendPanel = new GeoExt.LegendPanel({ title: "Lege

OpenLayers控制刻度线-仅显示米

我有一个使用OpenLayers库的应用程序 我创建一条比例线: map.addControl(new OpenLayers.Control.ScaleLine()); 但它同时显示米和英尺。我只需要显示米。 我将下一个代码添加到openlayers.css .olControlScaleLineBottom { visibility: hidden; } 但它仍然显示ft。如何修复它?通过将topOutUnits或bottomOutUnits设置为空字符串,可以禁用scaleli

如何使用OpenStreetMap在OpenLayers中检测点的土地类型

我有一张开放的街道地图 我使用OpenLayers 我想知道是否有办法获得地图上特定坐标的土地类型(例如:水、平原等) 我查了一下文件,但什么也没找到 谢谢。您可以使用CloudMake API进行地理编码: 您可以指定坐标,例如,查找指定坐标周围的道路: 您也可以以Json格式返回此信息谢谢您的帮助。我测试了这个API,它非常有趣和酷。不幸的是,我无法得到对象类型“water”的结果,我的意思是,有时它会找到水,但当我点击大西洋时,它什么也不会返回。我想BDD是不完整的。

OpenLayers-在地图上显示标记

我看不到地图上的标记。在表格中,我可以看到所有的点,但在地图上没有显示。 我想问题在这里: markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(venues.location.lat,venues.location.lng),icon)); markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(venues.location.lat,venues.loca

Openlayers3通过选择特定功能来显示图层

我有一张地图,可以选择一些要显示的图层。层包含在变量“层”中,如下所示 var layers = [ new ol.layer.Tile({ source: new ol.source.OSM(), name: 'OpenStreetMap', visible: true, }), new ol.layer.Vector({ sou

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