Questions tagged «openlayers-2»

当您使用OpenLayers JavaScript客户端工具包的2.x版本时,请使用此标记。

8
选择OpenLayers还是Leaflet?[关闭]
我在OpenLayers v / s Leaflet上与一位同事进行辩论。我的观点是,如果我们希望构建一个需要直接连接到Geoserver和PostGIS的项目,则OpenLayers是更好的API。 然后我发现了Open Data Kit,它看起来很新,但是具有与Geoserver和PostGIS的连接功能。 所以我的专案细节如下, 使用地图界面获取功能信息 创建一个自定义工具,从用户那里获取纬度/经度,以了解他/她在地图上单击的位置,然后从栅格中获取气候数据(由服务器上的py脚本处理) 允许用户上传excel,并将其上传到py脚本,该脚本返回一个GeoJSON,该GeoJSON在地图上创建矢量要素 允许用户创建矢量多边形,该矢量多边形将从WFS图层获取与其相交的要素。 从GeoServer上的PostGIS数据存储中获取图层,并在地图上显示图层。 所以,现在我对哪个更好感到困惑,为什么在Leaflet上使用OpenLayers更有意义?

3
Openlayers动画示例和算法
我想知道很长一段时间,这个社区中的人们是否使用openlayers来满足动画需求。我们知道,在浏览器上进行动画处理会使它有些疲惫,但是当地图与动画相遇时,我相信好东西将会淘汰。 您知道一些与openlayers兼容的优秀网站或动画算法吗? 这些是我对动画的了解,一些代码和示例。请与需要这些知识的人分享有关openlayers的动画知识。 用于在地图上添加具有时间延迟的功能的基本JavaScript代码。 time = 0; for (var i = 0; i < 5; i++) { time += 1000; setTimeout(function(j) { return function() { console.log("var is now", j); } }(i), time); } i2maps 是一个地理计算环境。它为时空数据和面向Web的可视化知识发现提供了灵活的编程框架。Javascript库用于构建交互式用户界面,并建立在OpenLayers之上。 OpenLayers时间轴 是一个使用OpenLayers创建与时间相关的地图的简单库。它支持群集策略(OpenLayers.Strategy.Cluster)和时间过滤。当前,它支持GeoJSON或GeoRSS格式的源数据。 Timemap.js 是一个Javascript库,可帮助通过SIMILE时间轴使用在线地图,包括Google,OpenLayers和Bing。该库允许您将JSON,KML或GeoRSS中的一个或多个数据集同时加载到地图和时间轴上。默认情况下,地图上仅显示时间轴可见范围内的项目。 自行车共享地图 提供商的网站每2-20分钟会自动更新一次数据。自行车使用是同时使用,包括自行车的重新分配。全天的实际总使用量可能更高。分配不平衡-为了使所有机架的满百分比相同,需要转移到其他机架的周期数。较高的数字表示分布更不平衡,例如,中心多辆自行车,边缘很少。本网站可能会中断。 数据:提供商的网站。地图数据:OpenStreetMap贡献者,包括OS Open Data。托管:UCL。由Mapnik和OpenLayers提供支持。 RaphaëlJS和OpenLayers集成。 RaphaëlJS是一个小型JavaScript库,可以简化网络上矢量图形的工作。例如,如果要创建自己的特定图表或图像裁剪并旋转窗口小部件,则可以使用此库轻松轻松地实现它。 OpenLayers过滤策略 本示例使用过滤器策略来限制传递到图层的要素。绑定到该图层的要素具有带有日期值的when属性。筛选器策略是使用中间筛选器构建的,该筛选器限制了显示日期的跨度。一个简单的动画循环遍历when值的域,并使用更新的过滤器对策略调用setFilter。

3
当前的Web Mercator投影代码是什么?
由Google Maps普及的网络墨卡托投影似乎每两年就会获得一个新的EPSG代码。 EPSG:900913(计算器文字中的Google)是非官方代码 EPSG:3785-是我当前用于数据集的投影 但是,此博客文章建议该代码现在为EPSG:3857。 该投影可以在EPSG网站上找到,但似乎也使用了代码SR-ORG:6864,并声称“这不是公认的大地测量系统:请参见WGS 84 /世界墨卡托(CRS代码3395)”。 那么,要使用的官方代码是什么?

5
如何将GeoServer图层置于身份验证后面?
我想使用OpenLayers和GeoServer发布地图图层。尽管这很容易设置,但是对于身份验证的可能性我还是有些迷惑。我想要的是创建不同的用户,这些用户将通过使用自己的用户名和密码登录,然后定向到他们自己的地图窗口。如何安全地做到这一点,以使我的用户都无法访问彼此的层? 我已经知道,例如通过查询GeoServer只是简单地要求它列出所有可用的图层,就可以很容易地“破解”设置。 我有什么选择?我想在ubuntu服务器上设置apache可能会有帮助?关于这个主题的任何教程吗?

4
如何在Openlayers中定义层顺序?
我有一个标记层,两个向量层和两个栅格层。标记层被两个栅格层覆盖。 有没有办法将标记层始终移到顶部? 编辑: Z索引的顺序在矢量层上效果很好,但是当我在地图上以较低Z索引添加另一个WMS栅格图层时,栅格层仍然覆盖了矢量层。 编辑:有人可以指出图层的“ LayerIndex”和“ Z-Index”方面的渲染顺序的差异吗?我认为图层索引处理矢量图层中的叠加顺序,而Zindex处理矢量图层中的要素顺序,对吗?

8
OpenLayers-调整容器大小后重新绘制地图
在我的Web应用程序中,我希望使用户能够设置地图容器的大小。 稍微扩展容器时,一切工作正常(显然是因为刚好位于边框后面的图块已加载)。但是,当容器显着扩展(在下面的示例中,宽度从300像素扩展到1000像素)时,将留有空白空间。 如何使地图重绘并适应新尺寸? 调用redraw()所有图层均无济于事。放大和缩小都没有。 我在Opera,Chrome和Firefox中使用上述结果对它进行了测试。令人惊讶的是,在IE8中,该问题并未发生,并且地图自动适应。 简化的测试页面: <html> <head> <style> #mapbox { width: 300px; height: 500px; border: 1px solid black; } </style> <script src="http://openlayers.org/api/OpenLayers.js"></script> </head> <body> <div id="mapbox"></div> <input type="button" id="test" value="resize"> <script> var map = new OpenLayers.Map('mapbox'); map.addLayer(new OpenLayers.Layer.OSM()); map.setCenter( new OpenLayers.LonLat(1000000, 7000000), 5); document.getElementById('test').onclick = function() { document.getElementById('mapbox').style.width = …

4
离线平铺的地图网络应用
我不确定是在此处还是在Stackoverflow上发布此消息,因为这有点交叉。让我试试看。 在提出的HTML5标准中,可以选择使用缓存清单将Web应用程序数据存储在本地缓存中。我希望将这种技术用于离线平铺的Web地图应用程序,并在此处根据标准安装的Geoserver 做了一个快速原型。 我只是撕开了从默认图层之一生成的OpenLayers客户端页面,并将<html>标签更改为 <html xmlns="http://www.w3.org/1999/xhtml" manifest="cache.manifest"> 并创建了cache.manifest简单读取的文件 CACHE MANIFEST http://lima.schaaltreinen.nl:8080/ 在我对此事的有限理解中,应该在本地缓存从该URL加载的所有内容:所有图块和OpenLayers JS。实际上,在Firefox中首次调用时,它的确要求我允许本地存储,但是当我单击“刷新”时(无论是联机还是脱机),页面嘶哑,说明未定义OpenLayers对象。看起来它尚未加载OpenLayers JS。 有人成功完成了基于OpenLayers的离线离线平铺Web地图应用程序的功能吗?或提示如何进一步调查?

5
OpenLayers中的地图投影
我想在OpenLayers的Google地图图层上叠加一些投影为WGS-84的数据。但是我只是不能把它们放在正确的位置。我做了如下: map = new OpenLayers.Map('map', { numZoomLevels: 20, projection: new OpenLayers.Projection("EPSG:900913"), displayProjection: new OpenLayers.Projection("EPSG: 4326") }); googlelayer = new OpenLayers.Layer.Google("Google street", {sphericalMercator: true}); map.addLayer(googlelayer); veclayer = new OpenLayers.Layer.Vector("vector", { projection: map.displayProjection }; var geojson_format = new OpenLayers.Format.GeoJSON(); veclayer.addFeatures(geojson_format.read(jsonData)); 尽管我已经分配veclayer了4326投影,但是尽管我将displayProjection设置为4326,但它仍被解释为900913,并且显示协调系统也为900913。我会犯什么错误?

6
如何在OpenLayers / Leaflet中创建动画群集标记?
由于Openlayers似乎无法比拟的平滑过渡,我想使用Leaflet。我特别需要能够将标记与自定义样式的标记组聚类的功能。 可以在Redfin上找到证明我正在努力实现的最佳示例。 请注意,将鼠标悬停在群集上可提供流畅的动画,并通过单击标记将群集分割成动画效果。当达到单个点不与给定公差重叠的缩放级别时,实际标记将以动画方式拆分到其位置。 我真的很想将类似的效果整合到其中,并希望就最佳方法或您可能知道的其他示例提供一些指导。 注意: Redfin似乎正在使用Flash,我想远离它。在理想的情况下,我想尽可能通过Javascript实现此功能,但认为可能需要通过HTML5 / canvas完成。 也许使用p。-Raphael.js或d3.js 有任何想法吗? 顺便说一句-找到了这个例子,但它似乎特别适用于Google Maps。

5
如何从GeoServer向OpenLayers地图添加简单的WFS图层?
我正在尝试将GeoServer包含的数据集之一添加到OpenLayers映射中。我遵循了OpenGeo教程,在这里看到了类似的主题,但是我似乎无法破解。有人可以看一下我的代码和GeoServer设置,并告诉我我要去哪里哪里吗? 这是我的代码: //WMS map world = new OpenLayers.Layer.WMS("Global Imagery", "http://maps.opengeo.org/geowebcache/service/wms", { layers : "openstreetmap", format : "image/png" }); map.addLayer(world); //WFS parks = new OpenLayers.Layer.Vector("WFS", { strategies : [new OpenLayers.Strategy.BBOX()], protocol : new OpenLayers.Protocol.WFS({ url : "http://localhost:8081/geoserver/wfs", featureType : "medford:parks", featureNS : "http://medford.opengeo.org/medford" }) }); map.addLayer(parks); map.zoomToMaxExtent(); GeoServer详细信息:工作空间名称= medford,命名空间URI = http://medford.opengeo.org …

4
寻求有关通用开源软件包路线图的建议?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我只是想在建议的堆栈上从开源GIS专家那里征求建议,以用于我的设想项目,因为我不完全了解大多数软件包可能的局限性。我知道我可以使用ESRI的各种程序包来做我想做的事,但是我想更便宜,更开放供全世界参观。我相信我可以接受任何挑战,并学到足够的知识来完成一个项目,我只是想避免一开始就走错了路。 我的网站愿景:就UI而言,这是一个非GIS外观的网站!在whereis.com的基础上,所有事情(或几乎所有事情)都在悬停在基础地图上方的盒子上完成。现在,这些细节并不重要,只需要强调在单独的窗格中没有带复选框的GIS层即可。在用户交互方面,注册用户可以在基础之上创建功能(例如饮水机位置,人行道等)地图,并编辑自己的功能。如果可能,请仅编辑自己创建的功能。确实是一张协作地图。 我仍然主要处于研究模式,使用各种程序包,但只是出于一般熟悉的目的,而不是真正的测试(这需要首先详细了解它们!)。作为基本数据库,PostGIS绝对是正确的选择,其中Geoserver / Mapserver是最有可能的中间件。Openlayers几乎肯定会成为草率的地图,因为我已经对它感到满意并且知道其功能。 因此,这带来了两个主要问题,需要大量建议: 1)对于这样的网站,最好的顶层UI是什么? 它是Django(甚至是Django-CMS)的自定义实例,还是GeoExt或其他库的拼凑而成的实例(不确定是否可以使用它进行登录/注册/完整UI),其他CMS /框架(不,不是drupal或任何有限制的东西!),还是完全不同的东西? 2)甚至可以让注册站点用户仅编辑他们自己的功能吗? 我想避免像OSM这样的大规模“涂鸦”场所和其他协作项目的经验。从我以前的阅读和建议看来,Geoserver无法具有功能级别的用户身份验证。 可以Mapserver吗? 我什至不知道某个站点的用户数量(来自CMS还是框架)甚至可以直接链接到geoserver / mapserver。 如果开源解决方案无法实现这样的概念,那么还有其他方法可以实现该目标吗? 经过身份验证的用户是否已编辑主要素图层的非发布版本(以免混淆原始版本)并每隔24小时自动将其合并到发布版本中,同时又保持原始副本的每日备份? 有点迷失了如何实现这一目的。 是的,我也查看过GeoNode,但是我只想要一张整体地图(保持简单),其UI要么不够互动(在进入GeoExplorer之前),要么在GeoExplorer中太像GIS。似乎也为该项目提供了解决方案。 抱歉,我在这里结束并含糊其词,但我希望能够从一条可行的道路开始,并且从现在开始几个月后不要碰壁,只是必须重新开始,因为道路从一开始,#1从未具有该功能! 我可以找到的最好的例子之一是http://www.gpsies.com。 我知道这使用了传单,但不确定底层框架和数据库。用户可以创建/上传自己的功能,但不能编辑其他人的功能。

7
比较具有良好网络界面的两个地图?
在Leaflet或OpenLayers中是否可以将两个地图与一个在两个之间滑动的条形图进行比较? 示例包括: http://www.esri.com/services/disaster-response/hurricanes/hurricane-sandy-the-aftermap http://www.arcgis.com/apps/StorytellingSwipe/index.html?appid=c62112f6ba834227978d8f1cf2b6f5af http://www.abc.net.au/news/specials/qld-floods/(不是地图) 我知道这是可能的,但我不知道该怎么做。任何人有任何想法吗?例子?

4
有哪些使用OpenLayers和PostGIS的知名网站?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 我认为使用PostGIS有很多令人信服的论点,但我有兴趣向人们展示使用PostGIS和OpenLayers的网站的示例。 我看到的一些示例是: 四方 车载数据库 虚假性(很多例子) WalkScore(据我所知) 还有其他示例可以很好地说明这种组合吗?我不确定所列的任何站点是否将OpenLayers用作其功能的核心部分,但我相信它们都使用PostGIS。


2
从OpenLayers矢量层删除/删除要素
我有一个OpenLayers图层,上面有几个向量。我知道OpenLayers功能ID(例如OpenLayers.Feature.Vector_241),我想知道如何删除此功能,而仅删除此功能? 我考虑过将它们全部删除,然后循环遍历数组以重绘它们,但这似乎有点不雅,而且很费劲。 我尝试了以下版本的各种代码: layer.removeFeatures( featureID ); 和 layer.removeFeatures( [featureID] ); 和 layer.removeFeatures( {feature : featureID }); 等等... 欢迎所有帮助! 谢谢 C

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.