问题标签 [openlayers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
12562 浏览

postgis - 显示地图,如 OpenStreetMap

我喜欢 OpenStreetMap 显示其地图的方式。它几乎看起来像谷歌地图。我已经在笔记本上安装了 GeoServer 和 PostGis。我还为我的国家印度尼西亚获得了这个 cloudmade osm 文件。我下载了 indonesia.osm.bz2。

我成功地将它导入我的 PostGis 并在我的 GeoServer 上进行了设置,但它没有像 OpenStreetMap 那样显示地图。我选择planet_osm_polygon 作为我在GeoServer 中的图层。最后,我用 openlayers 显示了这个。 替代文字 http://deerawan.com/blogimages/map_polygon.jpg

但我希望像这样一个 替代文本 http://deerawan.com/blogimages/map-indo.png

我从 Cloudmade 使用的 OSM 文件是错误的吗?

谢谢您的帮助。

0 投票
1 回答
2917 浏览

openlayers - Layer.Text 与 Layer.Vector。性能问题

这在所有浏览器中都非常快:

但是,以下代码在 Firefox 和 Chrome 中速度很快,但在 IE8 中却慢得令人难以置信(加载 500 个功能需要 30 分钟!):

出于多种原因,我更喜欢使用OpenLayers.Layer.Vector,但由于 IE 性能问题而不能使用。

有人知道一个好的解决方案吗?最后,我需要在地图上加载许多带有可自定义弹出窗口的可点击点特征。

0 投票
1 回答
346 浏览

javascript - CloudMade Marker Overlays - 可以控制 Z-Index 吗?

CloudMade API 是否能够控制标记叠加层(例如图标)的 z 顺序或 z 索引?

我之前在谷歌地图中使用过这个来使某些更重要的图标绘制在其他重要性较低的图标的顶部(尤其是在它们可能聚集在一起的某些缩放级别中)。

Google Maps GMarker 具有处理此问题的 zIndexProcess 选项。有谁知道CloudMade是否有这个设施?我搜索了 API 文档,但一无所获。或者这里有没有人可能有一种特别的方法来确保一个标记(或一组制造商)将被绘制在另一个之上的一层上?

0 投票
2 回答
1432 浏览

javascript - 如何使用 javascript 将 wms 图层添加到 bing 地图?

如何使用 javascript 将 wms 图层添加到 bing 地图?有人知道任何好的例子吗?

0 投票
3 回答
22474 浏览

javascript - 如何删除 OpenLayers-Map 中的标准控件?

我使用 OpenLayers 并想在左上角创建另一个导航控件。我知道如何添加控件,但默认情况下会在创建 OpenLayers-Map 时添加此导航。所以我想删除那个控件,添加一个自己的。我已经知道,默认控件是 OpenLayers.Control.PanZoom。

0 投票
1 回答
2177 浏览

geometry - 创建一个任意弯曲的 Well Known Text LineString 以在 OpenLayers 中显示

我正在生成的地图图层中的点之间动态生成 W​​KT LineString 以在 OpenLayers 中显示。我想让点之间的线弯曲,并且我希望能够根据各种输入变量动态改变曲率。

这适用于网络监控应用程序,我们希望曲率基于点之间的延迟时间(不是原始延迟本身,而是在给定时间段内与“正常”值的偏差)。

虽然一些 GIS 应用程序和数据库支持CircularString对 WKT 的扩展,但 OpenLayers 对此一无所知。

所以我需要从线段中生成一条曲线:

现在,行字符串很简单:

我可以确定使线段“弯曲”的唯一方法是插入中间点:

这对于我们的应用程序来说应该是完全足够的,但是我不知道如何生成中间点!

我假设有众所周知的方法/算法可以在二维平面中从线段中生成“弯曲”线。有没有人对如何实现这一点有任何想法,或者可能有帮助的书籍/文章/在线资源?

更新(2010-08-13):

贝塞尔曲线就是门票,在阅读完基本贝塞尔算法之后,实现起来非常容易。但是我必须编写一些代码来生成控制点。这是我想出的PHP代码。这假定具有xy成员的“Vector2d”类。

0 投票
3 回答
3898 浏览

php - 将 KML 文件上传到数据库并显示在 OpenLayers 地图上

我想在我的 wordpress 网站上创建一个简单的表单,以便人们可以上传 KML 文件,然后将这些文件存储在数据库中,并在 openlayers 地图 - openstreetmap 上显示路线。

该项目是一个用于存储远足路线的远足站点。

此/论坛/建议的任何文档。我对这个地图的东西完全陌生。

干杯

安迪

0 投票
2 回答
1287 浏览

javascript - 在js中确定event.target下面的元素

我正在尝试确定鼠标当前在 OpenLayers 地图中悬停的图块。当前编写的代码 - 使用标准 Hover 处理程序并简单地发送回事件 - 在 Chrome 中有效,但在 Firefox 中失败,因为 SVG 元素位于磁贴和鼠标之间。我确信在带有 VML 的 IE 中可能会发生类似的事情。

所以,问题是,如果该元素被当前是该请求目标的另一个元素“阻止”,如何确定鼠标悬停的元素?或者,是否可以在另一个 div 中使用“重新运行”事件trigger(),并检索新目标以模拟相同?否则,使用 OpenLayers 确定位于某个像素坐标处的图像既困难又低效。

0 投票
1 回答
844 浏览

javascript - 在不同投影的底图之间切换时如何重新投影矢量图层

我有两个基础层的 OpenLayers 地图:MetaCarta (EPSG:4326) 和 Google 地图 (Mercator)。sphereMercator = false,单位是度。地图上还有一些标记、框和矢量数据。

当我在基础层(具有不同的投影)之间切换时,简单的几何图形(例如标记或框)会自动重新投影并正确显示。然而,矢量图层(折线)只是移动,而不是重新投影。我认为我需要调用某种“重建”函数或添加一些参数,以便 OpenLayers 在基础层投影发生变化时自动执行此操作。但我不知道该怎么做。

我阅读了 Spherical Mercator ( http://docs.openlayers.org/library/spherical_mercator.html ) 并查看了 OpenLayers 示例,但没有找到解决方案。

我的代码部分如下(vector.json 中的所有坐标都以度为单位):

0 投票
1 回答
7408 浏览

javascript - 如何在 OpenLayers 中设置默认视图,而不限制边界?

根据示例,我可以看到您可以通过以下方式在 OpenLayers 中设置默认视图:

但是,这也(顾名思义)限制了我只能在这些范围内导航。我可以缩小并查看这些边界之外的东西,但我不能再放大它们或滚动到它们。

我试过没有任何限制范围(或使其成为整个地图),但我无法让它专注于我想要的区域。我尝试使用:

设置缩放和中心......但它似乎没有做任何事情,除了设置我可以从 map.getCenter() 读取的变量“中心”(如果我不设置它,它是空的,如果我设置它,我可以看到它......但地图本身保持完全扩展,它的中心似乎根本没有改变......)

我使用的地图图层是:

将 displayOutsideMaxExtent 设置为 true ......我真的很茫然。

我的目标是让世界的默认区域放大并显示在视图中(例如美国),观众可以选择在默认区域之外查看事物。