我有一个带有两个矢量层的OpenLayers映射.它们都包含标记. 在以下链接的帮助下,我设法在两层上都获得了一个选择处理程序.http://openlayers.org/dev/examples/select-feature-multilayer.html 该选择句柄在两层上为标记触发相同的功能.但是,如何区分所选内容位于哪一层呢?解决方法:在OpenLayers中,处理程序事件在单个视口或地图画布上触发.因此,应在每个图层上附加事件(功能选择和功能取消选择).如果在示例页面中遵循代码,则很显然...
在OpenLayers3 v3.5中,如何始终启用徒手绘制?启用徒手绘制的默认设置是通过ol.interaction.Draw的freehandCondition属性完成的,该属性当前默认设置为Shift键.draw = new ol.interaction.Draw({source: drawLayer.getSource(),type: 'LineString',freehandCondition: ol.events.condition.shiftKeyOnly });但是我不想要那个.我不希望按下Shift键以启用徒手绘制.我希望通过单击并拖动来启用徒手绘制功能,而无需任何关键修饰符. 我试...
我是OpenLayers的新手,我正在寻找一些帮助在地图上绘制线条,我一直在尝试各种不同的帖子关于绘制LineStrings但我无法让它工作!我只需要弄清楚如何在坐标之间画一条线. 继承了我试过但没有用的一些代码:var points = [new ol.geom.Point([78.65, -32.65]),new ol.geom.Point([-98.65, 12.65])];var featureLine = new ol.Feature({geometry: new ol.geom.LineString(points)});var sourceLine = new ol.source.Vector({features: ...
来自基于js / cordova的跨平台宇宙,我最近正在挖掘.所以我想知道直接在flutter中使用各种js库的选项.更具体我感兴趣的是在flutter中使用openlayers库创建一个多功能的地图视图,其中包含各种绘图和编辑功能.所以我想知道包含它的选项有哪些. 到目前为止,我看到两种主要方式: >使用webview:即使没有本地webview小部件,但仍有一个插件(https://github.com/dart-flitter/flutter_webview_plugin).我在这里看到的主要优点是“按原样”...
我需要的是一种修改矢量图层表示而无需再次下载数据的方法.我已经定义了一个GLM矢量图层和一个名为build_style的函数,用于根据某些特征为其几何图形着色.我有一个HTML表单调用函数UpdateGlmLayer,它以这种方式定义:function UpdateGlmLayer(info_str) {var v = info_str.split("|");var filter_column = v[0];var values = [parseFloat(v[1]), parseFloat(v[2]), parseFloat(v[3])];glm.styleMap = build_style(filter_column, va...
我有一张地图,我想要显示.它由Openseamap.org提供的标准地图(OSM,Google或Bing)和图层组成.此图层生成海标作为地图的图像.这应该是这样的(或多或少,没有粉红色的屏幕): 我试图将其转移到OpenLayers3. 我使用的JavascriptCode是:var map = new ol.Map({target: 'map',layers: [new ol.layer.Tile({source: new ol.source.OSM()}),new ol.layer.Tile({source: new ol.source.XYZ({url: 'http://tiles.openseamap.org/seamark/{z}/{...
我是OpenLayers的新手,并且已经遇到了我的第一个问题.我正在尝试转换“正常”坐标,我将其从Google地图复制到OSM,以将地图置于某个区域的中心位置.现在据我所知,“正常”坐标系EPSG:4326和OSM一个是EPSG:3857或EPSG:900913,这是相同的.所以我的Javascript代码是:map.setCenter(new OpenLayers.LonLat(53.537460, 9.953227).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:3857")), 5);但这...
我使用OpenLayers创建了一个地图页面.用户可以按周期,噪声源和年份选择特定的主题叠加(噪声级别). 我想允许用户选择基础(或背景)层:两个(公共)OpenStreetMap图层之一,Google基础图层或Yahoo!地图的图层.我原本也想提供Bing地图(虚拟地球),但由于那些使用不同的投影,我不能将它们与我的叠加(定制服务的瓷砖)结合使用. 它几乎适用于所有浏览器:Firefox,Chrome,Safari和Opera(如果你没有点击太多).但是在使用Internet Explorer(版本...
我需要知道点击某个功能的确切点.使用SelectFeature我可以获得有关单击了哪个功能的信息,但没有关于地图上某个位置的信息. 以下是创建listner函数的代码:select = new OpenLayers.Control.SelectFeature([vectorLayer],{clickout: false, toggle: false,multiple: false, hover: false});osMap.addControl(select); 这是我的听众的定义:vectorLayer.events.on({"featureselected": function(e) {//here I need to get XY//someth...
我意识到这可能是一个重复的问题:https://stackoverflow.com/questions/35582721/rendering-images-pixelated-with-openlayers-3. 但是,没有回复或评论.所以,我想在提供一些代码的同时也会问它. 我正在修改/更新显示各种天气相关元素(例如温度)的PNG图像的网页,以使用OpenLayers 3而不是2,因为OpenLayers将允许我们使用其附加功能.我的客户需要在放大和平滑时显示的实际像素.在OpenLayers 2中,我只需要添加图像渲染CSS,即.olTileI...
当尝试在模态中显示ol3地图时,看起来有一个奇怪的错误.地图位于模态中,但不显示.然后手动调整窗口大小会强制显示.这是a link试试看我的意思.单击每个地图中的设置下拉菜单.点击“获取功能信息”.这将切换模态中的地图(但不显示).调整窗口大小.瞧! 我尝试了很多方法来使用javascript和jQuery来触发调整大小事件:$('#featinfo').on('shown.bs.modal', function () { ol.Map.event.trigger(map5, "resize"); //borrowed from google...
我正在构建一个应用程序,用于将特征映射到描绘平面图的图像层(使用OL的ImageStatic层).每个功能都有一个svg图标作为样式,并可能有额外的svg图标作为边缘周围的“徽章”. 我在this jsfiddle中设置了代码相关部分的简化版本.var map = new ol.Map({layers: [],interactions: ol.interaction.defaults({}),target: "map" });var pixelProjection = new ol.proj.Projection({code: 'pixel',units: 'pixels',extent: [0, 0, 4097, 1596]...
我正在使用Geoserver处理OpenLayers 3,我有四个矢量图层,我使用singleclick事件获取每个功能的属性并在弹出窗口中显示它们. 现在我的问题是,当我点击最高层的一个特征时,我得到了所有较低层的属性,我使用了forEachFeatureAtPixel,但我不知道如何为每一层指定它! 这是我的代码:var OpenMeters = function (evt) { content.innerHTML = ""; var feature = map.forEachFeatureAtPixel(evt.pixel,function (feature, layer) {if (fea...
我编写了一个基本函数,允许我从地图外的链接显示弹出窗口.打开弹出窗口的功能工作正常,但我无法关闭它. 演示链接:http://www.catchingtherain.com/bikestats/stations.php – 单击左侧选项卡式面板中的链接. 这里有更多细节…… 典型的地图在从kml加载的矢量图层“站”上具有大约300个特征.这些是使用激活onloadselect = new OpenLayers.Control.SelectFeature(stations); stations.events.on({"featureselected": on...
是否可以在OpenLayers中创建两个图层(其中一个是半透明的)并单独移动它们?如果是这样,怎么样?我想让用户选择要移动的图层,或者如果不可能,请通过我自己的JavaScript代码移动一个图层,而另一个图层由用户控制. 两者都将是预渲染的pixmap图层,如果这很重要的话.解决方法:这是我提出的解决方案.它不漂亮,但它适用于我的目的. 更好的替代品非常受欢迎……/** * @requires OpenLayers/Layer/TMS.js */ MyLayer = OpenLayers.Class(Ope...