OpenLayers是一个开源的Javascript Web映射库,用于创建Web地图应用程序。
在 Openlayers 中获取 XYZ 源的中心(或范围)
是否可以在 Openlayers 中获取 XYZ 源的中心(或范围)? (我不是在谈论获取视图的中心,而是获取源本身定义的地图的中心。)...
这应该是一个简单的问题,但我不确定在哪里可以找到我需要的信息。 当应用程序运行时单击白点时, 它将记录一个像[750,216.66666666666666]这样的坐标。 现在,...
在Safari(版本18.0.1)中运行此代码时,生成的图像为: 然而,在Chrome(版本131.0.6778.139)中运行代码时,生成的图像是: 我可以让这两个匹配...
3D 可视化问题(Angular + ol-cesium),变化时闪烁
我创建了一个使用 ol-cesium 的新 Angular 项目。 以下是我正在使用的版本: 角 v19 OLCS 2.22.1 铯1.123 10.3.1 版 问题是我在使用时执行的任何操作...
我可以将 google 地图/api 与 openlayers 集成吗?
我有与 bing 地图集成的 openlayers。我想用 google 地图而不是 bing 地图来转换当前系统。我使用 bing 地图进行旅程规划、绘制形状、搜索位置......
如何使用 OpenLayers 和 EPSG:3857 缩小时仅显示单个世界?
我问了一个类似的问题,答案对于 EPSG:4326 仍然有效,但我需要知道如何使用 EPSG:3857 获得相同的结果。 我以为我只需要使用 ol.proj.transformExtent 即可
我正在尝试为我的标记添加从下到上的颜色渐变,但它没有按我的预期工作。我也不太同意半径 * 3 但我没有找到另一个解决方案让圆...
我正在尝试使用 OpenLayers 渲染非地理参考 SVG 图层。 (稍后我还将尝试解决地理参考 SVG 图层问题)。 然而,我正在努力使变焦达到标准......
如何通过npm安装ol-cesium并在Open Layers应用程序中导入.ts文件
当我通过 npm 安装 OL-Cesium 并导入我们的 .ts 文件时,它显示错误。 你可以在图片中看到点击这里查看图片 那么如何安装 ol-cesium 并将其导入 .ts 文件 w...
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 工作。 在我的代码示例中,...