OpenLayers是一个开源的Javascript Web映射库,用于创建Web地图应用程序。
OpenLayers 7:拖动(平移模式)卡在鼠标左键单击地图上
鼠标左键单击地图时,拖动模式(dragpan-mode)会卡住。我似乎无法以任何方式取消拖动(拖动平移)。无论我的鼠标移动到哪里,地图就会移动到哪里(没有我
我有一个OpenLayers 8.2的项目,其中地图中有多种类型的图层。正如 ol 6.14 中所介绍的,我正在使用地图对象的“loadstart”和“loadend”事件(https://openlayers.or...
在 OpenLayers 中的复合样式中禁用 hitDetectionRenderer
除了点本身之外,我还想围绕点特征绘制一个圆。但是,我不希望圆圈可点击。只有通过单击点本身,我才能获取指针事件....
使用 ASP.NET 和 IIS 在 GeoServer 中进行身份验证
我不知道这是否是一个愚蠢的问题,但是如何将 ASP.NET 身份验证与 OpenLayers 结合起来? 我创建了一个登录页面来在 OpenLayers 中进行身份验证(在 C# 中,服务器端),这是我的代码...
我正在使用模块重构应用程序的整个代码,现在 OpenLayers 4 的标尺功能遇到一些问题。 在前面的代码中工作正常,但现在当我双击 t...
如何在使用 OpenLayers 和矢量切片时删除重复的要素标签
我有一张地图,我在其中显示网格。每个矩形都有一个标签。不幸的是,当一个矩形被分成 2 个或多个图块时,其标签会显示在每个图块上。有没有办法,如何拥有...
Openlayers imagelayer 和 imagestatic 具有自定义图像加载功能,如果放大则不会加载?
我的问题: 在我的 React 应用程序中,我有一些功能可以从 API 获取图像。如果在用户高于某个缩放级别时添加图像(因区域而异,~7...
我希望我的地图从左上角开始,无论屏幕大小如何。每次我使用范围设置它时,我都会调整大小并重新加载,我不再位于左上角。我希望当我重新站起来时它会改变......
我创建了一个类来扩展 openlayers 中的 Interaction。此类允许选择矢量切片功能。 /** * 矢量平铺选择器类。 */ 导出类 VectorTileSelect 扩展了 Interaction ...
是否可以通过点击放大集群?我也不知道如何禁用集群弹出窗口。我读过这个问题,但仍然不知道该怎么做。 这是代码: 是否可以通过点击放大集群?我也不知道如何禁用集群弹出窗口。我读了这个问题,但仍然不知道该怎么做。 这是代码: <html> <script src="../ol/OpenLayers.js"></script> <script> var map, select; var lat = 53.507; var lon = 28.145; var zoom = 7; function init() { map = new OpenLayers.Map("map", { maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34), numZoomLevels: 19, maxResolution: 156543.0399, units: 'm', projection: new OpenLayers.Projection("EPSG:900913"), displayProjection: new OpenLayers.Projection("EPSG:4326"), controls: [ new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.ScaleLine(), new OpenLayers.Control.Permalink('permalink'), new OpenLayers.Control.Attribution(), new OpenLayers.Control.MousePosition() ] }); var osm = new OpenLayers.Layer.OSM("OpenStreetMap"); map.addLayer(osm); var lonLat = new OpenLayers.LonLat(lon, lat).transform(map.displayProjection, map.projection); if (!map.getCenter()) map.setCenter (lonLat, zoom); var MyStyle = new OpenLayers.Style({ // 'cursor' : 'pointer', fillColor : "#336699", fillOpacity : 0.9, fontColor: "#000080", fontFamily: "sans-serif, Arial", // fontWeight: "bold", externalGraphic: "atm.png", graphicWidth: 32, graphicHeight: 37, label: "${count}", labelAlign: "ct", fontSize: "15px", }); var layer = new OpenLayers.Layer.Vector("Atm", { protocol: new OpenLayers.Protocol.HTTP({ url: "atm.txt", format: new OpenLayers.Format.Text({extractStyles: true}), params: { extractAttributes: false, } }), styleMap: MyStyle, <!-- --------------------- style --> projection: map.displayProjection, strategies: [ new OpenLayers.Strategy.BBOX({ratio: 1, resFactor: 1.1}), new OpenLayers.Strategy.Cluster({distance: 50, threshold: 3}) ] }); map.addLayer(layer); // Interaction; not needed for initial display. selectControl = new OpenLayers.Control.SelectFeature(layer); map.addControl(selectControl); selectControl.activate(); layer.events.on({ 'featureselected': onFeatureSelect, 'featureunselected': onFeatureUnselect }); } // Needed only for interaction, not for the display. function onPopupClose(evt) { // 'this' is the popup. var feature = this.feature; if (feature.layer) { // The feature is not destroyed selectControl.unselect(feature); } else { // After "moveend" or "refresh" events on POIs layer all // features have been destroyed by the Strategy.BBOX this.destroy(); } } function onFeatureSelect(evt) { feature = evt.feature; popup = new OpenLayers.Popup.FramedCloud("featurePopup", feature.geometry.getBounds().getCenterLonLat(), new OpenLayers.Size(100,100), "<h2>"+feature.attributes.title + "</h2>" + feature.attributes.description, null, true, onPopupClose); feature.popup = popup; popup.feature = feature; map.addPopup(popup, true); } function onFeatureUnselect(evt) { feature = evt.feature; if (feature.popup) { popup.feature = null; map.removePopup(feature.popup); feature.popup.destroy(); feature.popup = null; } } </script> </head> <body onload="init()"> <div id="map"></div> </body> </html> 谢谢。您的帖子没有太多上下文来解释代码部分;请更清楚地解释您的情况。 function onFeatureSelect(event) { if(!event.feature.cluster) // if not cluster { // handle your popup code for the individual feature } else { // fetch the cluster's latlon and set the map center to it and call zoomin function // which takes you to a one level zoom in and I hope this solves your purpose :) map.setCenter(event.feature.geometry.getBounds().getCenterLonLat()); map.zoomIn(); } } 使用链接问题中的示例代码我将迭代集群中的所有功能以创建 BBX,然后放大到该范围。 var cluster_bounds=new OpenLayers.Bounds(); event.feature.cluster.forEach(function(feature){ clouster_bounds.extend(feature.geometry); }) map.zoomToExtent(cluster_bounds) 如果您真的不知道如何禁用弹出窗口,请删除这些功能: function onFeatureSelect(evt) { function onFeatureUnselect(evt) { 并将其替换为: function onFeatureSelect(event) { var cluster_bounds=new OpenLayers.Bounds(); event.feature.cluster.forEach(function(feature){ cluster_bounds.extend(feature.geometry); }); map.zoomToExtent(cluster_bounds); }
使用 Vue.js 在 OpenLayers 中显示 geotiff 图像(组合 API)
感谢您阅读我的问题! 我正在尝试显示来自 url 的 geotiff 图像,如下例所示: OpenLayers 研讨会 但我希望它能够在 Vue.js 3 中使用组合 API 工作。 在我的代码示例中,...
乘以 2 个源,WebGlLayer (openlayers)
我整个晚上都在挣扎。我想做的就是将两个栅格相乘。我知道我可以使用 RasterSource 做到这一点,但我需要更好的性能。当我创建图层(webgl)时...
我有疑问。在openlayers中,我如何知道是否添加了图层或地图?例如,我有一个图层控件,用于查看该图层在地图上是否可见。 在传单中我这样使用它
我正在使用 OpenLayers 地图,我想在其中使用不同的地图服务器,它们使用不同的坐标系。 OpenLayers能否将其集成在同一个地图中并自动转换坐标系...
我在我的 React Web 应用程序中使用 openlayer。 问题是我正在尝试从“ol-ext/layer/AnimatedCluster”导入 AnimatedCluster,当我尝试使用它进行渲染时,它需要 ol-ext 的类型,即 @t...
我是 Openlayer3 的新手,所以如果我写错了,请原谅。 我正在研究集群策略。 我有几种类型的对象要在地图上显示,并且每种类型都必须聚集。 例如...
Javascript;在运行剩余代码之前将数据从 url 加载到对象变量中
我正在努力理解 javascript 异步/同步概念。 我已经对 openlayers Layer 类进行了子类化,以便在地图中进行一些自定义渲染。实例化该类的对象后,我...
我想通过创建一个间隔来测试更新位置,该间隔将跟踪图标更新为给定经度和纬度的随机位置。 到目前为止,我将跟踪图标更改为 c 上的新位置...
调整窗口大小时 OpenLayers moveend 触发器过多
我在React环境中使用OpenLayers(背景信息)。我想使用 React 来控制地图显示的内容 - 使用上下文和其他组件。例如,如果有的话,请放大地图...
我正在尝试在新的 Next.js 项目上显示简单的 OpenLayers 地图。 问题是它向我展示了两张地图,而且它们工作起来有问题且缓慢。 这是项目结构: 应用程序/ |__地图/ | |...