问题标签 [geoserver]

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 投票
3 回答
1564 浏览

performance - 地理服务器和线程数

我们正在使用地理服务器,并且我们在大量用户的生产中遇到了性能问题。

我们使用 250、150 和 20 个线程进行了一些负载测试。我们注意到 Geoserver 使用 20 个线程比使用 150 个线程工作得更好,并且当线程数增加(150 或 250)时,性能会下降。

正常吗?Geoserver 如何管理用户请求?Geoserver 是否使用异步策略来管理用户请求?

提前致谢。

bsh

0 投票
3 回答
5028 浏览

paste - WMS/WFS 服务器:我自己写的疯了吗?

我是一个“自己动手”的人,但我想确保我不会因为试图咬掉的东西超过我能咀嚼的东西而自取其辱。

我正在编写一个基于浏览器的地图应用程序,该应用程序需要选择在最终用户的机器上独立运行(无互联网连接)。也就是说,应用程序是某种服务器,在许多情况下,它会安装在最终用户的机器上,并且浏览器将指向某个 localhost URL 来访问它。

我将在客户端使用 MapLayers,而服务器端将有一堆特定于应用程序的自定义逻辑,例如以某些自定义方式处理地图上的点击事件,在特定时间在地图上创建各种自定义对象,等等。

对于服务器的“业务逻辑”部分,我很高兴将 paste/webob 与 python 一起使用。这是一个简单的基础架构,让我可以轻松地放入所有这些自定义逻辑。

我一直认为客户端将与两个服务器进行通信:这个粘贴/webob 业务逻辑服务器,以及一个仅用于服务 WMS 和 WFS 地图元素的服务器。所以我在看 MapServer 和 GeoServer 来处理地图部分......我不高兴。

我不高兴,因为我不想在客户端机器上安装和担心“野兽”。对于 MapServer,我真的不想安装像 Apache 这样的成熟 Web 服务器,而必须处理 CGI、PHP 和 MapScript。对于 GeoServer,有(可能)安装 Java,并处理 GeoServer 设置和管理的各种复杂性。

这部分只是一个学习曲线问题。如果我能避免它,我对学习 MapServer 或 GeoServer 的复杂性并不特别感兴趣。我安装了 GeoServer,将其指向我的一些数据,并且能够使用 GeoServer 漂亮的 Web 管理员内置的 MapLayers 预览来查看我的数据。但是,当我尝试使用指向 GeoServer 的自己的 MapLayers 网页来提供真实数据时,我的 GeoServer 崩溃了。我可以使服务器崩溃,只是从客户端发送一些可能格式错误的请求,这让我感到非常惊讶。我可以深入研究 GeoServer 日志,试图找出我做错了什么,但是……我真的不想在这上面花很多时间。

因此,我正在考虑使用我已经拥有的粘贴/webob 服务器自己实现部分 WMS 和 WFS 接口。事实上,我可能只需要 WMS,因为我可以通过一个简单的自定义协议来处理矢量对象,我将数据传递给客户端,然后客户端可以直接使用 OpenLayers 创建和操作对象。

我已经查看了 WMS 的规范和示例消息(在 WFS 中略少)。自己实现这个协议似乎并不难,特别是因为在这种情况下我可以完全控制客户端——我不需要能够充当通用 WMS 或 WFS 服务器;我只需要让我自己的 OpenLayers 客户满意。

我需要 WMS 服务器具备的两个主要能力是:

  • 从我提前创建的预渲染图块存储中提供图块(我将使用 OpenStreetMap 数据和 mapnik 作为重渲染引擎预渲染图块;我将使用正常的 Google 地图样式图块命名方案来存储和访问它们OpenLayers 所期望的)

  • 能够为这些图块的修改版本提供服务器,其中我在本地存储的某些数据绘制在图块的顶部。例如,我可能在一个“层”上有 10000 个点,在另一层上有 10000 个多边形,当用户激活这些层时,我将提供相同的基础图块,但是当我提供这些图块时,我将渲染这些附加功能在它们之上,并且可能我会实现一个简单的缓存方案来将这些过度渲染的图块保留一段时间。

所以我的问题是:尽管我知道有现有的工具可以做这些事情(MapServer、GeoServer、TileCache 等),但我实际上觉得仅仅响应一些简单的 WMS 消息对我来说工作量较小,并且在 python 中自己在我的瓷砖上进行额外的过度绘制,确保一切都正确投影,等等。我不需要为这些覆盖层绘制花哨的宽阔街道或任何东西,只需简单的线条、图标,也许还有标签。拥有一个仅限 python 的解决方案听起来确实不错且简单。

我想如果我需要扩展以支持更多的 WMS/WFS 协议,或者进行更高级的过度绘制,我可以在那个时候插入 MapServer/GeoServer。

这里有我没有考虑的陷阱吗?

0 投票
2 回答
2684 浏览

rest - 地理服务器配置重新加载

不太确定我是否应该这样做。我想要的是我将动态生成我的 sld 文件,看起来当您在 geoserver 管理员中更新 sld 时它会重新加载。所以我尝试使用 rest api 和 curl 进行重新加载,但它似乎不起作用。
这是我的卷发

如果有另一种方法可以清除所有内容,那么我的 sld 会重新加载,那也很棒。只需要让这个工作,我不知道为什么它不是。

谢谢

0 投票
1 回答
2498 浏览

map - Geoserver TextSymbolizer 渲染问题?

我使用 geoserver 2.0.1,我使用 textsymbolizer 来标记地图上的特征。很可能 geoserver 不支持 '' 标签,因为我尝试更改字体大小、字体系列或 .. 它不起作用。如何对具有不同样式的特征进行标记?

0 投票
4 回答
7475 浏览

postgresql - 使用 GeoServer 设置 Postgres PostGIS 数据库时遇到问题

我在 Postgres 数据库中创建了一个表,其中包含名称 image_id 和几何列。这是架构的样子:

我使用这条 SQL 语句将测试记录插入到表中:

然后在 GeoServer 中,我创建了一个新的 PostGIS 存储并将其连接到我在 Postgres 中创建的数据库。当我尝试创建一个新层并将其与新商店连接时,我创建它时出错并显示此错误消息:

我在设置步骤中做错了吗?

0 投票
1 回答
1968 浏览

openlayers - 将用户输入保存到 postgis 表策略

我有 openlayers、geoserver 和 postgis/postgres 工作得很好。我正在尝试创建一个允许用户向地图添加点的应用程序。创建点后,我需要一个弹出表单来显示各种控件,这些控件允许用户输入有关点已添加到的位置的信息。

使用 postgis,我是否创建一个单独的表来保存基于添加点的 p 键的用户输入?对我来说似乎是个好主意,但我注意到在将点添加到数据库之前触发了 openlayers 的 featureadded 事件。我可以使用 geoserver 来处理保存用户输入,还是需要创建自己的模块来处理用户输入?

0 投票
2 回答
1155 浏览

geoserver - 地理服务器和动态标记

我很抱歉发布这个问题,因为解决方案很可能非常简单。但我完全没有搜索字符串的想法。

我有一个正在运行的 Geoserver 和一些描述建筑物等的自定义 shapefile。我可以使用 WMS 界面将地图请求为 png 并显示在网站上。所以太好了。

在下一步中,我想让用户指定一个坐标并在地图上绘制一个小标记。这个位置不应该存储在任何地方,我只想为这个用户绘制它。我很确定这可以通过 WMS 请求和内联功能实现,但我没有找到可行的解决方案,而且我没有 google 搜索字符串。

在我开始在 png 地图上绘制叠加层之前,请帮助我。

0 投票
2 回答
608 浏览

openlayers - OpenLayers 页面只能在 IE 中访问

我已经使用 OpenLayers 和 GeoServer 开发了 web 地图应用程序。Geoserver 安装在生产服务器的 8080 端口上。它在 Internet Explorer 中运行良好,并且所有 GIS 图层都可以轻松访问。但是我的应用程序不能在任何其他资源管理器中运行,例如 Chrome 或 firefox 等。

谁能解释为什么它不能在除 IE 之外的任何资源管理器中工作,问题出在哪里?

0 投票
1 回答
1497 浏览

iis - 如何从生产环境外部访问 80 端口的 IIS 和 Geoserver?

在生产服务器上,安装了 IIS 和 GeoServer。我可以从生产环境外部访问端口 80 的 IIS。我还想从生产环境外部访问同一端口 80 的 GeoServer,例如http://92.108.64.13:80/geoserver/web/。但是,我无法在端口 80 访问 GeoServer。

是否可以在 80 端口同时访问 IIS 和 Geoserver?通常,Geoserver 在不同的端口上运行,有效范围是(1024 到 65535)。实际上我不想打开任何其他端口来访问 GeoServer。是否有任何解决方案可用于在端口 80 访问 Geoserver 和 IIS?

需要有用的建议来解决这个问题

0 投票
2 回答
4622 浏览

openlayers - OpenLayers 如何计算边界框坐标?

我正在尝试通过 GeoServer 的 WMS 使用 OpenLayers 显示地图。我想知道 OpenLayers 如何计算 BBOX 坐标以使用 js 正确设置它们并避免发布的错误响应。我对 OpenStreetMap 和 GoogleStreetMap 没有这个问题。

这是我在函数中使用的 JavaScript 代码:

这是对地理服务器的请求:

这是我从地理服务器得到的响应:

400:分辨率 (0.00274658203125) 不是最接近网格分辨率 (0.0023326729820109904) 的 5.0%