我是GeoServer /数据库世界的新手.我以前从未做过任何数据库工作,但我需要使用GeoServer建立一个WMS作为我学生实习的一部分.
我在安装了PostgreSQL 8.4的独立模式(使用Jetty下载)中使用GeoServer 2.0.1.我的经历nyc_roads和nyc_buildings在GeoServer的文档中的安装演示,但我还是不明白,我应该如何去服务一些测试图像.我注意到nyc_roads安装程序包含一个负责设置nyc_buildings数据库的.sql文件.我不知道这个文件是如何生成的.
我们的测试图像是.tiff和.jpeg.我已经成功地在本地GeoServer机器上进行了WMS调用,并打开了包含的演示图像.我现在希望将这些.tiff和.jpeg图像添加到GeoServer并通过WMS访问它们.我曾尝试将图像复制到GeoServer数据目录,添加新的数据存储和图层,但我总是收到有关的错误input stream.
如果我遗漏重要信息,我很抱歉,这就像我所知道的那样.
编辑:
如下面的评论所述,我很困惑为什么GeoServer不会发布GeoTiff图像层.我为它创建了一个单独的工作区和数据存储.当我去添加GeoTiff图像时,正确读取边界框/地理坐标以及正确的EPSG格式.当我对设置感到满意时,我点击保存,但没有任何反应.没有错误消息或警告.
我正在使用Geoserver 2.1.1版,Postgres 9和PostGIS 2.0
我想要达到的目标(我认为!)应该是非常直截了当的.我想在地图上渲染一条线,代表地球表面上两个城市之间的大圆.
我的数据库包含城市位置,表示为定义为纬度和经度对的地理点.
我有一个在Geoserver中定义SQL视图的图层,它从指定城市的两个坐标中检索一个线串(st_makeline).我不得不键入将地理位置转换为几何图形以使其工作.
但是当我在地图上绘制返回的线时,我得到的是一条直线,而不是我期待的曲线.
谁能告诉我应该怎么做呢?
谢谢!
我打算开发一个基于Hadoop / HBase for Geotools的新数据存储,以便在Geoserver中使用它,以可视化Raster数据(平铺卫星图像)。有没有人做过类似的事情,甚至不知道这是否可能?我已经知道如何编译和集成像CSV这样的开源数据存储,但是我不知道如何开始在Hadoop上实现此数据存储。
谢谢。
我有一个奇怪的行为,也许你可以帮助我.
环境是
问题是,在jboss运行几个小时之后,当我尝试登录geoserver的web界面(对j_spring_security servlet的POST)时,花了很多时间(4-5分钟)登陆欢迎页面应用程序.
使用jstack,我发现有一个线程一直消耗100%的核心,并且这个过程在这里继续工作
at sun.security.provider.SHA2.lf_S(SHA2.java:162)
at sun.security.provider.SHA2.lf_sigma0(SHA2.java:171)
at sun.security.provider.SHA2.implCompress(SHA2.java:225)
at sun.security.provider.SHA2.implDigest(SHA2.java:118)
at sun.security.provider.DigestBase.engineDigest(DigestBase.java:186)
at sun.security.provider.DigestBase.engineDigest(DigestBase.java:165)
at java.security.MessageDigest$Delegate.engineDigest(MessageDigest.java:576)
at java.security.MessageDigest.digest(MessageDigest.java:353)
at java.security.MessageDigest.digest(MessageDigest.java:399)
at org.jasypt.digest.StandardByteDigester.digest(StandardByteDigester.java:979)
- locked <0x00000006f8c30bb0> (a java.security.MessageDigest$Delegate)
at org.jasypt.digest.StandardByteDigester.matches(StandardByteDigester.java:1099)
at org.jasypt.digest.StandardStringDigester.matches(StandardStringDigester.java:1052)
at org.jasypt.util.password.StrongPasswordEncryptor.checkPassword(StrongPasswordEncryptor.java:99)
at org.jasypt.spring.security3.PasswordEncoder.isPasswordValid(PasswordEncoder.java:204)
at org.geoserver.security.password.AbstractGeoserverPasswordEncoder.isPasswordValid(AbstractGeoserverPasswordEncoder.java:138)
at org.geoserver.security.password.GeoServerMultiplexingPasswordEncoder.isPasswordValid(GeoServerMultiplexingPasswordEncoder.java:75)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider.additionalAuthenticationChecks(DaoAuthenticationProvider.java:64)
Run Code Online (Sandbox Code Playgroud)
有些人有类似的问题吗?
编辑(有解决方法)
我发现问题与CMS垃圾收集器和permgen空间的增加有关.
环境
应用程序服务器是JBoss 7.1.1,其中部署了5个war(Geoserver等).所有战争都有共同的依赖关系(也有Geoserver); Java正在运行-XX:+UseParallelOldGC -XX:SoftRefLRUPolicyMSPerMB=36000
怎么了
当执行一个完整的GC,PermGen的空间增加了许多上方的使用.之后,方法的计算sun.security.provider.SHA2.*变得非常缓慢.
我是怎么解决的
转移到G1GC垃圾收集器为我解决了问题(目前我正在使用以下选项-XX:+UseG1GC -XX:-UseAdaptiveSizePolicy -XX:SurvivorRatio=1 -XX:NewRatio=1 -XX:MaxTenuringThreshold=15 -XX:G1HeapRegionSize=32m)
我有一个连接到地理服务器的网站,它通过j_spring_security_check从geoserver获取会话.geoserver给出的cookie有效期多长,我可以编辑它的到期时间吗?
目前,我的地图有超过25000点.当我加载所有点时,地图非常慢.因此,我只想在某个缩放级别和边界框(用户视图)加载数据.如何使用我当前的代码实现这一目标?
var map = new L.Map('map', {center: new L.LatLng(54.0000, -125.0000), zoom: 5});
var googleLayer = new L.Google('ROADMAP');
map.addLayer(googleLayer);
function BoundingBox(){
var bounds = map.getBounds().getSouthWest().lng + "," + map.getBounds().getSouthWest().lat + "," + map.getBounds().getNorthEast().lng + "," + map.getBounds().getNorthEast().lat;
return bounds;
}
var geoJsonUrl ="http://localhost:8080/geoserver/Wells/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=Wells:bc_well_data_wgs&maxFeatures=25&outputFormat=text/javascript&format_options=callback:loadGeoJson";
var geojsonLayerWells = new L.GeoJSON();
function loadGeoJson(data) {
console.log(data);
geojsonLayerWells.addData(data);
};
$.ajax({
url: geoJsonUrl,
dataType : 'jsonp',
success: loadGeoJson
});
map.on('moveend', function(){
if(map.getZoom() >= 18){
map.removeLayer(geojsonLayerWells);
}
if(map.getZoom() < 18){
map.addLayer(geojsonLayerWells);
}
console.log(map.getZoom());
console.log(BoundingBox());
});
Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的问题,我无法真正找到答案.
我正在使用OpenLayers 3.我想显示一个WFS服务,其中包含在GeoServer 2.6.2中定义的层.该层是使用我之前在GeoServer中定义的自定义参考系统定义的.我告诉你这个SRS:
+proj=lcc +lat_1=14.25 +lat_2=13.3166667 +lat_0=13.783333333333333
+lon_0=-89 +x_0=500000.00004 +y_0=295809.17715 +k_0=0.999967040229754
+a=6378206.4 +rf=294.9786982138982 +units=m +no_defs
+towgs84=0,105.5,197.2,0,0,0,0
Run Code Online (Sandbox Code Playgroud)
OpenLayers库无法识别此投影.我应该在调用WFS Servicek之前定义它.我在网页OpenLayers上查了很多例子,但我无法解决问题.
有人可以帮帮我吗?非常感谢你提前.
我想web archive在我的tomcat网络服务器上运行geoserver .我正在使用tomcat 8.
我web archive从geoserver下载GeoServer 2.7.1.1 .当我想部署war文件时,出现错误如下:

但是当我部署另一个war应用程序时,它正确部署.
哪里有问题?
我不知道这是否是一个愚蠢的问题,但我如何将asp.net身份验证与openlayers"结合"?
我创建了一个登录页面,在openlayers中进行身份验证(在c#,服务器端),这是我的代码
Uri uri = new Uri("http://"+username+":"+password+"@localhost:1979/geoserver/wms");
if (uri.Scheme == Uri.UriSchemeHttp)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.Method = WebRequestMethods.Http.Post;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream()); string tmp = reader.ReadToEnd();
response.Close();
Response.Write(tmp);
}
Run Code Online (Sandbox Code Playgroud)
我不知道这是否是解决问题的正确方法,无论如何,如果我达到目标(在地理服务器中使用用户名和密码进行身份验证),我该如何将此身份验证与openlayers结合使用,这是在用户端(javascript)
提前致谢
geoserver ×10
asp.net ×1
bounding-box ×1
datastore ×1
geojson ×1
geotools ×1
gis ×1
hadoop ×1
hbase ×1
java ×1
javascript ×1
jboss7.x ×1
leaflet ×1
openlayers ×1
openlayers-3 ×1
postgis ×1
postgresql ×1
projection ×1
spring ×1
tomcat8 ×1
vector ×1
webarchive ×1