这听起来很简单,但我找不到任何新手教程:有谁能给我一个简单的例子,我如何在OpenLayers中创建(vektor)标记,在mouseover上打开信息窗口,甚至在mouseout上关闭它
我找到了部分解释,但不是全部…听起来你想看看“OpenLayers.Popup()
本例显示了绘制多边形后的弹出窗口,然后单击它,但您应该能够将其更改为响应悬停。
您需要使用selectControl创建弹出窗口。要使其响应悬停,而不是在构造函数中单击“设置悬停:true”。有关如何执行此操作的简单示例,您需
我有下一个ol.layer.Image:
让wmsLayer=new ol.layer.Image({
可见:对,
source:new ol.source.ImageWMS(/*源的参数*/),
最小分辨率:0.2578032878762812,
最大分辨率:490.46408416878
});
但当贴图分辨率等于图层maxResolution(490.46408416878)时,不会显示该图层
我可以在上看到,如果贴图分辨率严格小于maxResolution,则该层可见:
ol.laye
在openlayers 4中
我有几个层wmts ign和一个从mapserver导入的层。
第一个选项适用于浏览器的大小,但只有在固定地图的宽度和高度时,才会显示地图服务器的大小。
css
如果我将贴图的宽度设置为768px,它就会出现,但如果我将其设置为900px,则不会出现
#map {
Height: 100%;
Width: 768px;
}
层的调用是通过
var emprises_operations_inrap = new ol.layer.Image({
ti
我在开放层中有一个线串功能,并绘制两个点。当我单击并拖动以在两个现有点之间添加点时,是否会触发属性或事件来告诉我新点的索引
目前,我尝试了以下两项活动:
session.Modify.on('modifystart', function (e) {
console.log(e);
});
session.Modify.on('modifyend', function (e) {
console.log(e);
});
它们都返回新的坐标,但没有告诉我在索引0和1之间插入了什么
我使用ol.interaction.Select,但当飞越功能时,我的图标消失
var selectPointerMove = new ol.interaction.Select({
condition: ol.events.condition.pointerMove,
style: []
});
我应该用什么样的风格来保持我的基本图标
感谢您的帮助只需从上述代码中删除样式:[,或创建样式对象即可
如果您看到ol.interaction的文档,请选择
它清楚地表
我正在开发一个基于Openlayers的应用程序。它基本上是渲染图像,用户可以通过鼠标点击在图像上绘制几何特征,如直线、多边形等
我必须实现一个功能,用户可以通过移动滑块来改变图像亮度
我遵循链接。我已经将我的像素操作代码放在“updateBrightness”方法中,如链接所示
imageLayer.on('postcompose', (event) => {
this.updateBrightness(this.currentBrightness, event.contex
我想显示地图到我的网站使用OpenStreetMap使用图书馆开放层。
当我想添加标记时,我想添加一个标记,但该标记不会显示在地图上
我在谷歌上搜索过,在我的代码下面找到了一个代码。
有很多例子可以添加标记,但它在谷歌地图中占主导地位,我想使用开源地图
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet"
href="https://cdn.rawgit.co
我使用Openlayers来绘制角色和形状
我想根据形状的大小动态更改字符大小
function setStyle(feature: RenderFeature | Feature<any>, resolution: number): void | Style | Style[] {
const props: IProps = feature.getProperties()
const options: IStyleOptions = this.styleOptions(pr
我需要将geojson文件中投影为NSIDC ease Grid North/South或WGS84-NSIDC海冰极地立体图North/South的图层添加到我的地图中。该地图是Esri的海洋底图
实际地图对此链接可见,供您参考。现在,地图使用EPSG:3857投影进行投影,但我应该将其更改为上面的投影之一,以便正确显示我必须添加的图层
根据OpenLayers 4中的文档,我尝试在执行重投影命令之前创建一个简单的html文档。在处理极轴图层时,我实际上应该添加在一个地图投影到另一个地图投影之
当你看一个没有包含baselayer图像的缩放级别(可能在12.level之后,我们没有图层)时,有没有办法添加一个透明的徽标
我使用的是openlayers,arcgis cahce
感谢您的回复我不确定是否了解您的需求,但:
如果您希望在特定缩放后添加徽标,则可以创建一个仅在给定缩放中显示嵌入图像的图层。一些WMS层应该可以做到这一点
如果你这样做是因为在12级之后你没有什么可显示的,那么你应该将你的缩放限制在一定的范围内。hi
我找到了openlayers的解决方案
OpenLayers.
我有一个来自OpenLayers.Layer.Image类的带有几个图层的地图。我想知道是否可以分别在每个图像/层上启用拖动。与类似,您可以单独拖动每个功能
谢谢 是的,请参见[1]。
您只需向地图添加一个DragPan控件(默认情况下有一个)
嗯,
1-我认为用图像层来实现这一点是错误的。层不应相对于其他图像/层移动。我建议你把可移动的图像画成特征。功能设计为可以拖动
这是什么类型的图像,为什么要拖动它们?对不起,我的问题不是很清楚。。我希望能够单独拖动我的图像/层,这样,如果我拖动一层,其他
我有:
我在GeoExt.MapPanel上编辑(创建、删除…)此图层使用:
var saveStrategy = new OpenLayers.Strategy.Save();
var vector = new OpenLayers.Layer.Vector("vector", {
projection: mercator,
strategies: [new OpenLayers.Strategy.Fixed(
我正在开发谷歌地图和openlayers 4之间的集成。我把我的工作建立在这个基础上
我的问题是,在ol 3和ol 4.4.2之间的某个地方,change:resolution事件的行为发生了变化。在此代码之前
view.on('change:resolution', () => {
console.log(view.getZoom())
})
每次鼠标滚轮旋转仅调用一次并记录(例如):
现在它产生了这样的东西:
4.017277252772164
4.08563754449
我正在使用OpenLayers 5,无法找到一个解决方案来检查给定的坐标是否位于特征的边界上
我使用了map.getFeaturesAtPixel和geometry.intersectsCoordinate,但始终存在一个问题,即如果坐标在特征中,函数也会返回true。我只希望结果是真的,如果坐标在特征的边界上
背景:用户可以在地图上画线并将其与其他功能连接起来(因此我使用ol.interaction.Snap)。当保存时,我想拥有用户“抓拍”的功能。我找不到一个事件或其他东西来告诉我在哪里捕捉
我创建了一张地图并放置了一个标记。我唯一可以使用的标记是从OpenLayers托管的标记。我在“img/marker.png”中有自己的标记,但它不显示?有什么想法吗?我尝试将其移动到根文件夹并使用“/img/marker”,但没有成功
import 'ol/ol.css';
import {Map, View} from 'ol';
import TileLayer from 'ol/layer/Tile';
import OSM from 'ol/source/OSM';
import {f
我有一个GPX文件,我试图用下面的函数计算两点之间的总距离
import { LineString } from 'ol/geom'
getDistance(previous, next){
const coords = [ previous, next ]
const line = new LineString(coords);
return line.getLength();
},
我知道getLength()应该以米为单位返回,但我得到的是一些非常小的数字,当我添加所
我在我的项目中使用OpenLayers map,我在地图上显示项目列表。每当用户单击项目(功能)时,项目描述将弹出而不是单击,我想转换为悬停。要在需要修改的地方执行此操作?我不确定您需要在哪里修改,因为您没有提供代码。然而,下面是一个取自OpenLayers示例的片段
因此,我冒昧地猜测,您只需将行hover:true添加到SelectFeature配置中,即可完全选择,您可以删除行highlightOnly:true或将其更改为false。此外,您的报告功能将具有用于显示弹出窗口的代码
同样,
本教程介绍的通过web浏览器编辑空间数据的技术非常简单:
Ext、GeoExt、OpenLayers-Geoserver和WFS-T完成了所有肮脏的工作,您不必在服务器端编写任何代码。所有对数据库的更新、插入和删除查询都是通过WFS-T完成的
非空间数据是否有类似的功能?什么能像WFS-T一样处理存储到数据库的通信?上述解决方案也适用于非空间数据,但我希望避免一直使用geoserver:有许多工具可用于将数据加载到PostGIS中
中的实用程序是命令行实用程序
是一个桌面GIS客户端,可以在P
我想将EPANET.inp文件转换为不同的形状文件(例如,单个EPANET.inp文件可能包含接头、蓄水池、水箱等,因此我需要不同的形状文件)。我该怎么做?是否有任何第三方开源代码可用?任何帮助/建议都会对我有帮助
提前感谢。Inptools包的inp2shp命令将EPANET.inp文件转换为不同网络元素的单独形状文件。它是开源(GPL)和跨平台的。请看一看Inptools包的inp2shp命令,该命令将EPANET.inp文件转换为不同网络元素的单独形状文件。它是开源(GPL)和跨平台的。查
我试图使用${iconURL}样式属性来确定将在矢量图层要素上显示的图标。该图标不显示
我的图层初始化代码是:
var s = {
externalGraphic: "imgs/pp/${iconURL}",
graphicWidth: 20,
graphicHeight: 20,
pointRadius: 20,
fillOpacity: .2,
};
this.vectorLayer = new OpenLayers.Layer.Vector("vec
使用openlayer 3.3.0,我们将地图分为几个县,每个县都是一个“特征”,我想选择一个特征并更改其边界颜色,当我选择另一个特征时,我想将先前选择的特征恢复为其原始样式,并将新特征应用于所选样式
所以我用这个来添加交互
var select = new ol.interaction.Select({
condition: ol.events.condition.click,
});
select.on('select', function(evt)
我想把WMS和WMTS结合起来。我在奥兰多工作
3.10.1. 单独或仅合并WMS应用程序中的服务没有问题。WMTS服务在我的OL3应用程序中单独正常工作
但是,当我向WMTS添加WMS时,OL3会生成WMS GetMap请求,请求的值为&SRS=EPSG%3A3857&,尽管我的所有服务都基于EPSG 25832(WMTS也是)。WMS响应包含ServiceException代码InvalidSRS。当我复制wms getmap请求并将3857替换为25832时,响应是正确的映射
在我的OL3
在哪里可以找到有关OpenLayers的实际有用信息?我正在尝试将OpenLayers 1应用程序转换为OL3,但文档似乎不存在,或者是一个非常简单的示例,无法帮助我解决问题。你看过OpenLayers 3的网站吗
在那里,你会发现,a和a。我最近也刚开始学习OpenLayers,花了相当多的时间寻找额外的资源和示例,特别是因为使用示例进行实验是我学习得最好的方式
这是一本叫做“OpenLayers 3之书”的书。不知道为什么,但是你可以通过这个链接免费查看整本书(6月15日和16日确认)
我也
我需要在我的openlayers地图中添加一些版权信息文本。该网站提供了一个按钮,以类似的方式将地图导出为PNG,如所示,版权文本也必须位于导出的PNG地图上
因此,我不能对版权文本使用html覆盖,但必须将文本直接打印到画布中,因为“将地图导出到PNG”功能只用于导出画布中的内容(没有html控件或html覆盖)
我尝试了两种方法。两者都不起作用;)
使用ol.source.ImageCanvas,如图所示。问题是当放大或缩小时,文本会跳跃。但是文本应该是静态的
在OpenLayers初始化后
我已经使用Postgres/PostGIS数据存储设置了一个geoserver,并启用了geoserver矢量文件插件。在geoserver中加载图层后,可以使用geoserver portal提供的Openlayers界面查看地图。在这之后,我一直在尝试使用Openlayers在前端渲染这些瓷砖,遵循教程
对于教程中给出的示例世界地图数据,代码的工作方式与charm类似,但在尝试渲染Postgres数据存储中的任何其他地图层时,它显示为空白
我的数据仅限于一个小区域(印度),而不是全世界,并使
我已经使用Geoserver 10年了
升级到ArcMap 10.6后,我发现当我导出到shapefile时,
我的功能不再显示在带有投影EPSG:900913的OpenLayers 4.6.5中。它确实显示在GeoServer 10.13.0 OpenLayers预览中,带有其本机EPSG:2249投影
我不知道这是否重要,但当我在旧的和新的shapefile上使用shp2pgsql时,.sql文件的不同之处在于“shape_leng”,“shape_区域”消失了
发件人:'7.3432620
我有一个矢量层,其中一些点由用户生成,配置如下:
var sourcePoint=new VectorSource();
var vectorPoint=新矢量层({
资料来源:sourcePoint,
风格:新风格({
填充:新填充({
颜色:“rgba(0,0,0,0.2)”
}),
图片:新圆环样式({
半径:7,
填充:新填充({
颜色:“#32ff32”
})
})
}),
zIndex:99,
名称:“矢量点”,
可见:假
});
当地图页面打开时,它将加载用户数据并填充到sou
我对打开图层很陌生,但在以下方面的帮助下,我在绘制线条和多边形方面取得了成功:
我想知道如何从向量中得到经度和纬度?
我在这里看到一个解释:
但我是新来的
有人能帮我写代码或提供一个例子吗
编辑:
这是解决办法
function lineAdded(feature) {
var nodes = feature.geometry.getVertices();
for (var i=0; i<nodes.length; i++) {
var lon = nodes[i
我试图弄清楚如何使用openlayers在单独的div中以列表的形式显示动态标记,但是我希望只显示在当前视图中看到的标记。这意味着,每当移动地图时,标记信息列表都会更改。有人对实现这一目标有什么建议吗?我还在学习openlayers,所以如果这个问题的答案显而易见,我很抱歉。提前感谢。您可以注册地图的moveend事件,并使用onScreen()方法检查显示的功能
var-map=newopenlayer.map(…);
var layer=新的OpenLayers.layer.Vector(…
查看dev.openlayers.org/apidocs/files/openlayers/Layer/Vector-js.htm后,不清楚如何使用以下javascript从下面的geojson示例中提取属性值:
{ "type": "FeatureCollection",
"features": [
{ "type": "Feature",
"geometry":
{ "type": "MultiPoint",
以下问题:
我使用矢量层中的OpenLayers.Geometry.LineString绘制了一条线。使用Openlayer SelectFeature,我想选择这一行。但这只可能发生在起点和终点。这是openlayer源代码中的一个bug吗
这是我的例子:点击蓝色粗线不起作用
<html>
<head>
<title>OpenLayers Example</title>
<script src="ht
我一直在为这个挠头,我想知道这是否可能。我想用以下方式替换GeoExt.form.FormPanel的协议:
为了呈现formpanel,我在formpanel外部定义了一个变量“proto”为null(var proto=null)
然后“proto”进入formpanel(协议:proto)
在按钮的处理函数中定义了一个新变量“proto”。我想在formpanel中替换这个新变量
由于extjs、geoext和openlayers都是javascript库,所以我尝试过使用“eval”等方
我想将OpenLayers.Control.Button放入水平工具栏(OpenLayers.Control.Panel),但现在按钮是垂直样式的。请参阅以下JSFIDLE:
提前谢谢你!代码如下:
HTML:
CSS
添加浮动:左
.firstItemInactive,.secondItemInactive {
background: #ff0000;
border: 2px solid #075f67;
width: 18px;
height: 18px;
是否有人创建了openlayer地图,或者知道如何创建一个带有选中/取消选中所有覆盖的按钮的openlayer地图
我有一个带有多个覆盖层的地图,这会让用户更容易一次取消选中所有图层
感谢您通过按钮回拨呼叫hidealoverlays和showAllOverlays
// UNTESTED
function setAllOverlaysVisibility(map, status) {
var layers = map.layers;
for (var i = 0; i<lay
我正在尝试使用openlayers和geo server运行脱机地图,我已将osm数据导入geo server,其中包含:
行星线
行星点
行星osm多边形
行星路
从预览层我可以成功地看到地图;问题是:
1.我的伊朗多边形没有2个状态
2.我如何才能找到一个好的sld样式,使我的地图看起来像原来的openstreetmap这篇文章中的答案可能会对你有所帮助。请注意,OSM不使用SLD,所以您永远不会得到完全相同的。谢谢,我以前看过这个链接,但还不够好:嗯,OSM不使用SLD。所以,我想你必须自
openlayer 2的工作代码
需要-new ol.Map而不是new OpenLayers.Map获取完整代码
我正在尝试使用openlayer 3来转换它。但是有很多变化,openlayer 3中没有标记。。任何人都可以建议如何更改这个工作示例(例如ol.Style.Icon)
下面是代码
函数更新(f){
f、 style.externalGraphic=“marker.png”;
矢量特征(f);
}
选项={
分区:“地图”,
缩放:2,
中间:[0,0],
图层:[
新的Open
我在openLayers3中遇到问题
它的函数名为“ol.proj.transform”
我想从“EPSG:5186”坐标更改为“EPSG:4326”坐标
var lonlat1 = ol.proj.transform([111111.1111,222222.2222222],'EPSG:5186','EPSG:4326');
console.log(lonlat1);
lonlat1值为[111111.111122222.2222222]
ol.proj.transform不工作
为什么函
如何显示地图特定区域内的平铺层?尝试使用“扩展”选项,但对我无效
我就是这样做的:
var polygon = rm.getCurrentRegion().getData().polygon; //get a polygon
var extent = new ol.geom.Polygon([polygon]).getExtent(); //convert it to an extent
let newLayer = new CommonMap.TileLayer({
t
我有一个绘图工具,它使用ol-ext的转换交互。有没有办法从转换中排除某些形状?例如,我想排除转换线字符串
transformInteraction = new interaction.Transform({
features: this.props.drawnShapes, // null at initialization
layers: map.getLayers().getArray().filter(l => l.get("transfor
所有示例OL5都适用于NodeJS
对于浏览器代码,我从“ol/source/OSM.js”转换导入OSM;到ol.source.OSM,从“ol/source/WMTS.js”导入WMT;至ol.source.WMTS等
但是创建WMTSTileGrid对象不起作用
我知道-新建ol.tilegrid.WMTS.WMTSTileGrid。。。。
但是浏览器说
TypeError: ol.tilegrid.WMTS.WMTSTileGrid is not a constructor
如何创建W
我需要确定是否在层上设置了预合成回调:
var layer = new ol.layer.Vector({
renderMode: "image"
});
后来我添加了一个预合成处理程序
layer.on("precompose", function(event) {
//Some clipping is applied here
});
如何确定层是否具有预合成处理程序,例如layer.hasprecompose
我使用的是Openlayers 5.20如果您已经设置了类似prec
标签: Openlayers
map-directionsopenlayers-5angular-openlayers
在我的应用程序中,我使用angular 6和openlayers V5
我对这个openlayers很新
我已经做了方向,能够设置视图方向(输入客户的选择)
我使用Ctrl+drag(而不是Alt+Shift+drag)在地图方向上拖动更改
例如
map-component.ts
请检查以上代码以及如何更改旋转贴图拖动旋转键的默认控件
请节省我的时间
提前谢谢
试试这个:
this.map = new OlMap({
target: 'map',
layers: [this.la
是否可以在图层上使用保存策略(用于数据表),而无需先将图层添加到地图?如果在创建时将“isBaseLayer:true”添加到图层,则在以后添加时不会绘制该图层
我想做一个简单的应用程序来获取给定纬度和经度的地址,只需进行反向地理编码。为此,我想使用OpenLayers
那么,我该怎么做呢
我也知道如何使用Bing和Google地图进行反向地理编码。
如果通过OpenLayers进行反向地理编码有困难,请建议其他方法。OpenLayers不允许这样做,您需要一个包含所有街道名称的数据库等等。。。
OpenLayers可用于在浏览器中的地图上的给定位置显示某些内容(标记)。如果地图图像包含街道名称,这可能会有所帮助,但您不会将其作为文本获取,街道名称将作为
我有一个来自geoserver的wms层,如下所示:
wmslayer = new ol.layer.Tile({
source: new ol.source.TileWMS(({
url: 'http://localhost:8080/geoserver/wms',
params: {
'LAYERS': 'poste:layer',
'TILED': true,
'STYLES':
我正在尝试将OpenLayers.Control.WMSGetFeatureInfo与OpenLayers.Popup.FramedCloud结合使用,以从我的地理服务器检索信息并在弹出窗口中显示它们。
这是我的代码:
var map,wms,point;
function load() {
map = new OpenLayers.Map('map',{});
wms = new OpenLayers.Layer.WMS( "OpenLayer
我试图通过OpenLayers getFeatureInfoUrl()从webapp通过MapServer访问像素的值。服务器以
msWMSFeatureInfo():WMS服务器错误。无效的I/J值
我曾尝试在谷歌上搜索,但无法找到任何线索,说明我的请求可能会导致什么问题,只是I/J值指的是鼠标点击的坐标,因此问题可能源于evt.coordinate:
var vs = this.wmsLayer
mapol.on('singleclick', function(evt) {
docume
我正在使用ol.geom.Polygon对象来绘制多边形,我已经添加了一个工具提示来显示这样绘制的面积
if (geom instanceof ol.geom.Polygon) {
MapValues.polyAcres = MapService.formatArea(geom);
tooltipCoord = geom.getInterior
我在我的项目中使用openlayers 6。
地图上的图层根据缩放级别隐藏/显示
以下是地图和视图防御:
view=新视图({
中心:地图中心,
投影:israeliTM.getCode(),
缩放:0,
分辨率:分辨率//分辨率数组
});
地图=新地图({
层:层,
目标:“地图”,
视图:视图
});
更改缩放时激发此行:
var curRes=map.getView().getResolution()[map.getView().getZoom()];
正如您在视图中所看到的,定义为
使用其中一个示例中的一些代码,每当我在特定层的不透明部分上悬停时,我都会尝试更改指针表示
映射。在“pointermove”上,函数EVT{
如果evt正在拖动{
回来
}
var pixel=map.getEventPixelevt.originalEvent;
var hit=map.forEachLayerAtPixelpixel,functionlayer,rgba{
返回rgba[3]==0;
}, {
'layerFilter':函数层{返回层==aisLayer;}
};
map.
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 26 页