我已经创建了一个OpenLayers.Style,它可以给我的多边形着色,一个可以调整我的点大小的Style,还有所有的jazz,现在我想向用户解释这些styles代表了什么
我在OpenLayers中看不到任何允许我使用这些样式绘制自己的图例的内容。一切似乎都指向向我发送数据的假定地图服务器,而我没有这些数据
目前看来,我必须绘制一些样本点/区域,并抓取它们来制作我自己的图例。有没有更好的方法直接基于样式执行此操作,以便在样式更改时不必重新生成图像
更新
我已经有了一个很好的答案,它依赖于Ge
为什么setUrl可用于平铺层而不可用于矢量层
在ol/source/WMTS.js、ol/source/UrlTile.js中有一个setUrl函数,然后将其导入ol/source/VectorTile.js和ol/source/ImageWMS.js,但在ol/source/Vector.js中没有?如果需要更改矢量层的URL,您会怎么做
谢谢
Jim在ol.source.Vector中的url选项可以是一个函数:
var myUrl;
myUrlFunction = function()
我正在使用imageArcgisRest源代码,我需要在导出层API中按ID过滤数据,ID可以是数千。因此,获取请求是不可能做到这一点的。是否有任何方法可以使用OpenLayers imageArcGisRest源作为post方法请求数据
以下是我创建源代码的代码:
const source = new ImageArcGISRest({
url: l.url,
crossOrigin: 'anonymous',
params: {
dpi: 96,
每次我们在基于OpenLayers的网站上添加一个新层(数据主要由GeoServer服务器提供),我们都会讨论是使用单个平铺还是平铺方法
我们评估的一些参数如下:
使用平铺方法,我们得到:
缓慢但连续地构建视口
很多小图片
客户端缓存的可能性
加载管道阻塞(一次6个请求)
装载过程中导航时的抖动感觉
使用单个磁贴方法,我们得到:
在装载期间导航时感觉更平滑
加载层之前的时间延迟
每层一张大图
不缓存单个磁贴
我们在层中有很多数据编辑,因此平铺缓存可能没有那么有效
在平铺方面,是否有任何最
我想选择功能,然后将功能调整到页面绑定
我使用以下代码:
selected.geometry.resize(2, origin);
我的代码,将所选的翻一番,但我希望将所选的调整到页面绑定。
我不知道如何计算比例并在上述代码中设置2
有人能帮我吗?我找到了答案:
function fitToScale(){
minBoundX=vectors.selectedFeatures[0].geometry.getBounds().left;
minBoundY=vectors.se
我从google tiles url({0123}.google.com/vt/lyrs=m&hl=fr&x=!x&y=!y&z=!z)获取png地图,使用带有缩放和边界框坐标的bigmap2(),我使用以下命令准备该地图并获取瓷砖:
对于本例,边界框为-11.250000、36.597889、16.875000、52.482780,png尺寸为1280 x 1024
gdalinfo map.png
gdal_翻译-VRT-a_srs EPSG:4326-gcp 0-11.250000 52.
是否有任何方法可以在不改变特征样式的情况下使用OpenLayers的选择交互
我只对在悬停时使用这种交互的事件感兴趣
谢谢大家! OpenLayers有一个非常好的文档。阅读API有很大帮助
发件人:
默认情况下,所选功能的样式不同,因此此交互可用于视觉高亮显示,以及为其他操作(如修改或输出)选择功能
选定要素的样式。默认情况下,使用默认编辑样式。请参见ol.style
因此,您可以通过为地图上定义的选择交互提供相同的样式来解决此问题。默认样式定义列在的文档中
var raster=新建ol.
我想从http请求加载坐标数据,并将其绘制为一个线字符串
到目前为止,我已经:
var coordinates = [[30.433333,19.066667], [30.732778,19.704444],[30.832778,19.84444]];
var featurestreet=new ol.Feature({
geometry: new ol.geom.LineString(coordinates),
name: 'xyz'
});
但现在我想从如下文件加载向量数据:
在OpenLayers 4.6.5中,我需要在平铺图像源上运行一些计算,但只针对位于多边形内的像素,并根据这些计算的结果计算多边形的一些基本统计信息
我为每个多边形设想的过程如下:
对于多边形中的每个像素,计算红色带除以绿色带的值
计算为多边形中所有像素计算的所有值的平均值
创建包含单个多边形的新多边形层,该多边形的形状与原始多边形相同,但使用基于平均值的颜色进行着色
这似乎是一个相当简单的任务,但我在网上找不到任何讨论这类事情的东西。我希望能找到一些类似于“foreachpixelinef
我创建了一个地图应用程序来显示IGC文件和跟踪航路点。它功能齐全,然后停止工作
我创建了一个web应用程序,使用OpenLayers为飞行员显示航路点和IGC文件
这是一个功能齐全的站点,然后它意外地停止了工作。OpenLayers会出什么问题?我在GitHub页面上托管了该站点,但在本地副本上也遇到了同样的问题
在浏览器控制台中,我收到以下错误:
加载源为“”的的的失败
示例:
航路点页面:[
IGC页面:[看起来OpenLayers 3.10.1版的源代码已经不存在了。我将其更改为5.3.0
我叫托尼。我来自越南。我想在带有openlayers/geoserver的webgis中添加一个标记。这是我的密码:
<!-- Import OL CSS, auto import does not work with our minified OL.js build -->
<link rel="stylesheet" type="text/css" href="http://localhost:8080/geoserver/openlayers/theme
我使用Openlayers来显示地图和一些矢量特征,如多边形和点。是否可以为矢量要素的标签提供超链接?有人知道怎么做吗?我有一张有矢量多边形和点特征的地图。点特征可能属于多边形特征,如果多边形和点特征都具有selectControl,则很难单击多边形内的点。所以我在想,如果我可以有指向多边形标签的超链接,我可以删除多边形的selectControl,并通过单击标签而不是多边形中的任何位置来执行相同的功能
谢谢,
阿里德伯 添加超链接的一种方法是将其放入弹出式html中,我知道这并不是您想要的。。
此代码将贴图的div width max但height设置为0(百分比值无关紧要,始终为0)
这是可行的,因为它将贴图的div设置为固定大小,但显然不是我想要的
<div id="map" style="width: 100%; height: 500px;"></div>
有人经历过吗?有人建议如何解决这个问题吗
我也在使用jquery(-mobile)
谢谢您需要为HTML和正文提供100%的高度:
html, body {
height: 100%;
}
有没有办法将几个GML多边形绘制到一个向量层?
我有几个带多边形坐标的KML文件。
我这样画地图:
for(var i = 0; i < telepHatarArray.length; i++){
var telep_layer = new OpenLayers.Layer.Vector("GML", {
protocol: new OpenLayers.Protocol.HTTP({
url: "telephatarok/telepules_" + telepHa
我在地图上有几个矢量图层,当我尝试切换特定图层的可见性时,除了最后添加的图层外,什么都没发生。如果我将该层的可见性设置为false,则所有层都将消失,如果我将其设置为true,则所有层都将再次可见。有人能解释我这种行为吗?问题解决了,我对每个矢量层源都有相同的全局变量,每次都被覆盖。所以只有最后一层有特征。问题解决了,我对每个矢量层源都有相同的全局变量,每次都被覆盖。所以只有最后一层有特征。
我在地图上有一些特征,在我移动它们之后,使用
var point = new OpenLayers.LonLat(newlon, newlat);
point.transform(epsg4326, projectTo);
VectorLayer.features[0].geometry.move(point);
功能将按预期显示在新位置,但一旦我更改缩放级别,功能将消失。有人知道为什么吗?加载OpenLayers.js后,在脚本标记中设置OpenLayers.Renderer.SVG.pro
我正在将一个地图应用程序从Openlayers 2迁移到ol3,并且有一个bbox层,当数据块发生变化时,它会向服务器发出请求。我使用刷新策略(force:true),服务器返回我使用自定义格式处理的对象数组
var refreshStrategy = new OpenLayers.Strategy.Refresh({
force: true
});
OpenLayers.Format.GTFS = OpenLayers.Class(OpenLayers.Format, {
read:
我正在使用
但它的测量单位是什么?100是米还是公里
我的猜测是,缓冲区单位基于地图投影。因此,在下面的示例中,EPSG:3857单位以米为单位
如果地图投影为EPSG:4326,则为度
查看openlayers 2的文档并查看投影和单位是的,我猜也是这样。谢谢你,如果我想输入英里数,那么我将把它乘以1609.34?是的,(英里*1609.34=调用缓冲区时使用的米)。祝你的项目好运谢谢你兄弟。
var buffer = input.buffer(100);
// convert the O
我在geoportal工作,我想使用公共WMS服务。我使用的是Openlayers 4.6.4。当我按如下方式设置图层时:
new ol.layer.Tile({
source: new ol.source.TileWMS({
url: 'https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wms',
params: {
'LAYERS': 'Actueel_ortho25',
'TILED':
我使用openlayers 4,我需要画一个圆并突出显示圆内的特征。
然后我需要把这些数据放到一个表中。
请问,有人知道如何把所有这些东西放进卷轴里吗?你可以看看我在哪里使用JSTS(第三方库)
考虑到您的需求,这里需要处理两件事:
将代码升级到OpenLayers 4(演示使用OpenLayers 3.14),但不需要做任何/微小的更改
调整代码以查询多个层(示例仅使用一个层)
要将内容从功能转换为表格,您需要使用select.getFeatures().getArray()作为输入进行循
似乎我有一个简单的要求,但我对OpenLayer的知识似乎有限
我需要在地图中放置一个要素,放置后,将该要素拖动到正确的位置,然后获取纬度/长度坐标。如果我可以删除该功能重新开始,那就太好了
但首先:
我已成功放置功能,但无法从drawfeature切换到dragfeature。
如果有更好的方法来实现我的目标,我会非常乐意学习
// create the map variable
map = new OpenLayers.Map("map");
// create layers
var ma
我发现弄清楚为什么OpenLayers无法为我加载非常令人沮丧。最终,我希望在Drupal中的单个页面上运行它,因此它需要与jQuery一起工作。JSFIDLE中有一些示例,但并不多
最接近我的是——但是当我把它带到Drupal时,我没有以同样的方式显示导航元素
在大多数情况下,尽管我从其他我认为有效的示例中复制,但在尝试将它们带到JSFIDLE时,它们会在某个地方中断:
也许JSFIDLE实际上并不尊重:
可能我强迫所有东西都用单引号是在破坏某些东西
如果您有任何关于为什么这些
我使用的是openlayers,当我从服务器查询POI列表时,我想为每个POI添加一个POI
因此,我为它们中的每一个创建了一个标记,并希望在单击标记时打开一个FrameCloud
我用这个:
marker.events.resgister("click",marker,function(){
this.pop.show();
});
但是,当我拖动标记时,贴图将移动,并触发事件
虽然我不希望在拖动标记时发生任何事情,但当鼠标悬停在标记上时,光标应该是指针。就像谷歌的标记一样
如何实现这一
我在图层上创建了一个点,并向其添加了一个外部图形。
现在,我已经用X偏移和y偏移移动了外部图形图像
现在我想用外部图形在图像集的中心显示一个标签。目前它显示在图像的底部。对于移动标签,我已经更改了标签的X偏移和y偏移,并且使用了与移动外部图形相同的值。但标签仍然不在外部图形的中心尝试以下样式属性:labelXOffset和labelYOffset
(删除了前面的答案)
我正在努力学习设计在线地图和在地图上显示数据。网上有这么多的信息,但都很混乱。我希望有人能回答这个问题,使过程更清楚
我正在使用Django,GeoDjango作为我的站点。所以我有一个启用了postgis的postgresql数据库。根据我的搜索,我采取了以下步骤
1-使用osm(openstreetmap)获取地图数据。我只需要一个国家的数据,所以我找到了链接加载osm数据的形状文件。
2-使用tilemill设置地图样式。导出为MBTiles
3-???现在我有MBTiles,但我如何使用
如何在OpenLayers中加载此服务?投影为26912(UTM 12区)。以下是我尝试过的一种变体(没有成功):
在这种情况下,使用XYZ方法有效:
var ESRIWorld = new OpenLayers.Layer.XYZ( "ESRI",
"http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/${z}/${y}/${x}",
{sphericalMercator: true
我有一个带有嵌入式OpenLayers地图的应用程序。地图包含一个基本图层和几个带有图形的要素图层等
我需要一种方法来创建一个打印输出,其中包括地图和其他项目,如图例、标题、数据表等
有人对此有什么建议吗
我曾想过创建一个弹出窗口;但是,我找不到任何方法来克隆地图本身。我找到的最好的方法是html2canvas(),你只要给它一个div,然后得到一个png。非常适合用户在页面上看到的报告 我试了一下html2canvas。它打印地图控件;但是,谷歌的地图分幅和我的任何功能都不会打印。@Frank
假设我有两层,即:第1层和第2层
是否有可能将所有要素图层放在另一个图层内?
在本例中,返回红色框内的所有灰色。有一个为线串定义的函数,因此任何几何体都可以调用此函数来确定与另一几何体的交点——对于多边形,只需为其各自线串的每个组合调用该函数即可。对于点/多边形交点,这将变为包含
因此,要找到两个不同矢量层之间的任何交点,(假设您的第1层和第2层指的是矢量层,而不是其中的特征),您可以这样做
var features1 = layer1.features;
var features2 = la
我有一个openlayer2的例子,在这个例子中我可以画直线和圆地图,我可以计算距离。现在我想添加多边形并计算距离。因为我是新来的,所以我得到了很多错误。原始代码在这里
有人能帮忙吗
/*
*APIMethod:创建测地线多边形
*围绕半径创建正多边形。用于创建圆
*诸如此类。
*
*参数:
*原点-{}多边形的中心。
*半径-{Float}到顶点的距离,以贴图单位表示。
*边-{Integer}边数。20近似于一个圆。
*旋转-{Float}原始旋转角度,单位为度。
*投影-{}地图的投影
我试图通过OpenLayer 4中的WFS显示一个几何体。问题是使用以下代码片段。。请求成功,我可以在响应中看到XML(wfs gml)数据(使用firebug),但多边形不可见。
readFeatures方法似乎无法解析XML(gml)文件。
有没有办法在readFeatures方法中指定xml(gml)元素以读取几何体
。。。
...
var vectorSource=新的ol.source.Vector({
格式:新建ol.format.WFS({
特写:'http://www.open
我正在从服务器读取带有crs定义的GeoJson文件:
{"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::32720" } },
"features": [ many featur
我正在尝试沿路径设置点的动画。我看到了使用渲染点的。我的地图中还有一个可以包含该点的源,我可以每隔几毫秒修改一次几何体。是否有首选方法?为什么?这两种方法之间有性能差异吗?使用VectorContext时性能会更好。但对于单个动画几何体,您可能不会注意到任何差异。修改几何体的开销是触发的事件链:几何体通知要素、要素通知图层、图层请求地图重画
我正在尝试使用Openlayers ImageArcGisRest从ArcGis地图服务器在Openlayers地图上添加图层。我必须将令牌传递给函数,因为应用程序使用令牌身份验证
我发现,如果我先登录到地图服务器,地图的加载会很好。当我使用带有令牌的Postman时,它也会返回数据,因此我知道令牌没有问题。当我试着给它一个标记时,它似乎断裂了,我想这与我的语法有关。我有其他层可以很好地工作,所以我知道这不是稍后设置的地图代码
var token = _my_token;
var url =`
我正在为一个学校项目使用OpenLayers
在我的地图中,我将GeoJSON点要素作为VectorLayer加载到基本mapbox层之上。这些点代表建筑物。单击点时,将显示包含建筑名称的ol.Overlay工具提示
当在屏幕中央生成工具提示时,它看起来很棒:
当我拖动地图,使点靠近屏幕的右侧边缘时,工具提示会防止内容溢出,这非常整洁:
但是,当我尝试对屏幕的左侧边缘执行相同操作时,我没有得到这种行为,相反,工具提示内容只是溢出:
假设用户要单击靠近屏幕左边缘的点。如果建筑物的名称很长,将
我的数据库中有来自用户定义多边形的经纬度垂直。我的问题是:现在如何在地图上重新创建和显示它们?使用GoogleMapsAPI很容易做到这一点,但我找不到任何关于如何使用OpenLayers实现这一点的文档或示例。有人有过这样做的经验吗 经过大量的实验,我发现了如何做到这一点:
let sitePoints=[];
让siteStyle={
//样式定义
};
设epsg4326=newopenlayers.Projection(“EPSG:4326”);
for(让我输入坐标){
设coord=
我正在开发一个使用OpenLayers的网站,需要将各种WMS源放在背景地图的顶部
我有一个问题,覆盖WMS层没有显示时,放大地图。
这个问题似乎只有在EPSG:900913中使用背景WMS层时才会出现。
我已在此处创建了一个演示页面:
除了背景贴图外,两个贴图都是相同的。
左侧贴图使用EPSG:4326中的背景贴图,而右侧背景贴图使用EPSG:900913。
如果放大,您将注意到Nexrad层仅在左侧贴图处保持可见
如果查看为第二个映射发送到Nexrad服务器的两个请求,BBOX是错误的:
Openlayers拖动功能在Google Chrome中不起作用。但它在Opera、Firefox和IE中运行良好
您可以找到Openlayers拖动功能的示例:
请告诉我Openlayers拖动功能在Google Chrome中是如何工作的。谢谢。我使用的是Chrome版本27.0.1453.94 m,您使用的是哪个版本的Openlayers?Openlayers版本2.13开发版和Chrome版本27.0.1453.94 m@Chistope Roussy此时2.12是稳定的版本,可能它
我使用TileMill在MBTiles中创建了一个地图,并将其托管在MapBox上。现在,我正在尝试在我的网站上显示它,并使用OpenLayers和Wax添加infobox
根据这些
地球顾问。de/map/wax/manual/index.html
这段代码应该可以工作,但不能。瓷砖看起来很好,但不是图例。
如果我不注释此行//map.addControl(new wax.ol.Interaction());
方法未定义时出错。
但是如果我像那样离开,没有错误,但是传奇仍然没有出现
wax
我的OpenLayers openstreetmaps有一个问题,我正在从kml文件加载线字符串功能。由于线串的复杂性和线串的数量,除了性能之外,其他一切都可以正常工作。我想使用simplyfy()函数来简化线串几何图形/特征。下面是我编写的一些代码,用于动态简化。问题出现在下面的代码行中:
feature.geometry.components[i].simplify(0.1);
这似乎根本不会修改原始几何图形要素组件。我做错了什么?我认为我们可能需要使用remove
我是OpenLayers的新手,正在开发一个现有的应用程序。它在同一张地图上汇集了几个不同的图层,其中一个图层访问了美国地质勘探局的地图服务StreamStats。由于当前政府关闭,流当前返回的不是地图块,而是一个HTML页面,上面写着“由于联邦政府关闭,usgs.gov和大多数相关网站不可用”
按照我们的设置方式,我们显示一个“正在加载数据…”弹出窗口,并将StreamStats添加为矢量层。当它初始化时,我们清除弹出窗口。然而,由于OpenLayers只返回一个HTML页面,它似乎从未初始化
我没有将openlayers作为一个模块包括在内,但我创建了一个自定义组件,该组件以一个div的名称命名,该div被转换为一个映射。在angular 2/4/5中有什么方法可以让我在同一页上有2个openlayers 3/4地图吗?我希望8k+的用户能写出好的问题;-)你尝试了什么,失败了什么?您是否使用了某种角度的openlayers模块或常规的ol模块?OpenLayers不会阻止您在页面上多次使用它。
我正在尝试自定义此示例:
但一直以来:
ol.js?20180608153258:47 Uncaught TypeError: a.addEventListener is not a function
at y (ol.js?20180608153258:47)
at Hk.k.Oe (ol.js?20180608153258:302)
at Hk.b (ol.js?20180608153258:46)
at Hk.Sc.b (ol.js?20180608153
我想知道OpenLayers(比如说v5.3.1)是否能够显示KML文件的气球样式信息(即文本、图像、附加的链接)
下面是一个非常简单的KML文件示例,如我想使用的文件:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Style id="style0">
<LineStyle
我正在使用OpenLayers使用USGS数据集绘制地震图,该数据集位于:
https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson
我正在添加图层并按如下方式配置视图:
var map = new Map({
target: 'map',
layers: [
new TileLayer({
source: new OSM()
}),
new ImageLa
我对Openlayers相对缺乏经验,我一直在努力解决这个问题。基本上,我已经根据WMS调用在地图上创建了一个图层。我设置了url,这样当您单击单选按钮时,它会运行一个函数,并插入url的一部分,该部分将链接到服务器上的适当文件。最好用代码来解释
var layer_type = "Tavg_SDdiff";
var layer_name = "Tavg_SD_diff";
function layer_names(id) {
layer_type = OpenLayers.Uti
在OpenLayers 4.6.5中,我需要在循环中强制刷新地图视图,并等待刷新完成,然后再继续循环的下一次迭代
在某些情况下:我在TileImage源的小多边形边界部分上重复进行像素计算。我已经能够让我的计算函数一次处理一个多边形,但是当我尝试将它放入一个循环以遍历所有多边形时,除非整个多边形在地图视图中可见,并且多边形中的瓷砖已加载,否则它将无法工作
所以我现在试着得到一个循环,对于每个多边形:
重新定位地图视图,使其在缩放级别14的多边形上居中
刷新视图以确保已加载所有平铺
运行多边形中像
我正在使用最新版本的Openlayers使用以下代码从XYZ层创建光栅:
const source = new XYZ({
url: "https://gibs-{a-c}.earthdata.nasa.gov/wmts/epsg4326/best/" +
"GHRSST_L4_AVHRR-OI_Sea_Surface_Temperature/default/2020-04-02/" +
"2km/{z}/{y}/{x}.pn
我想让用户在地图上添加自定义标记,并对每个标记进行描述。任何提示、任何教程的链接都非常有用。您可以注册一个函数,在地图上“单击”事件。当用户单击该标记时,该标记将自动添加
试着这样做:
// 'map' is your map created using new OpenLayers.Map(options)
markers = new OpenLayers.Layer.Markers( "Markers" );
markers.id = "Markers";
map.addLayer(mar
我正在使用openweathermap服务显示当前天气的地图。温度以摄氏度显示。但我需要把它换成华氏温度。我找不到任何参数来做这件事
有人能帮我处理这个问题吗
期待您的回复
提前谢谢。我找到了解决办法。问题是我使用了OWM.OpenLayers.1.3.4.js而不是OWM.OpenLayers.1.3.6.js。为了显示华氏温度,我必须使用“单位”参数
var weather = new OpenLayers.Layer.Vector.OWMWeather("Current weather",
我正在使用openlayers javascript API在宾夕法尼亚州南部的飞机上绘制一张带有标记的地图。我遵循了这些示例,但我似乎无法将点投影到OpenStreetMap投影中
我在费城地区有一个坐标,用于测试(26987241508)。目前,我无法让OpenLayers正确地从状态平面投影点
我尝试了十进制坐标的例子,并且成功了,所以我认为坐标系/投影可能是问题所在-代码的其余部分可能是正确的
我通过选择feet和3702 Pennsylvania South验证了采样点的坐标是否正确
上一页 1 2 ...
4 5 6 7 8 9 10 ...
下一页 最后一页 共 26 页