Javascript 在OL6.4中使用WFS层
我正在尝试使用WFS和openlayers从我的geoserver显示多边形功能和OSM底图Javascript 在OL6.4中使用WFS层,javascript,openlayers,geoserver,Javascript,Openlayers,Geoserver,我正在尝试使用WFS和openlayers从我的geoserver显示多边形功能和OSM底图 图层名称:utmzones 本地SRS:EPSG:4326 工作区名称:utmzone(已启用WFS服务) 命名空间URI:www.hamid1.com(实际上不存在!) 地理服务器url:localhost:8080/geoserver 使用下面提到的代码,OSM层显示在浏览器中,但我看不到多边形层 import'ol/ol.css'; 从“ol/format/GeoJSON”导入GeoJSON;
import'ol/ol.css';
从“ol/format/GeoJSON”导入GeoJSON;
从“ol/Map”导入地图;
从“ol/source/Vector”导入VectorSource;
从'ol/loadingstrategy'导入{all};
从“ol/View”导入视图;
从“ol/source/XYZ”导入XYZ;
从“ol/source/OSM”导入OSM;
从“ol/Style”导入{Stroke,Style};
从'ol/layer'导入{Tile as TileLayer,Vector as VectorLayer};
var vectorSource=新矢量源({
格式:new GeoJSON(),
url:函数(范围){
返回(
'http://localhost:8080/geoserver/wfs?service=WFS&' +
'version=1.0.0&request=GetFeature&typename=utmzone:utmzones&'+
'outputFormat=application/json&srsname=EPSG:4326&'+
扩展数据块连接(','))+
“,EPSG:4326”
);
},
策略:全部,
});
var vector=新矢量层({
来源:矢量源,
风格:新风格({
笔划:新笔划({
颜色:“rgba(0,0,255,1.0)”,
宽度:2,
}),
}),
});
var raster=新瓷砖层({
来源:新OSM(),
});
var映射=新映射({
图层:[光栅,矢量],
目标:document.getElementById('map'),
视图:新视图({
中间:[0,0],
maxZoom:19,
缩放:1,
}),
});代码>使用策略all
您将请求bbox=-Infinity,-Infinity,Infinity,Infinity
,这是不需要的,可能会被服务器拒绝。您可以使用简单字符串替换url函数:
url:
'http://localhost:8080/geoserver/wfs?service=WFS&' +
'version=1.0.0&request=GetFeature&typename=utmzone:utmzones&' +
'outputFormat=application/json&srsname=EPSG:4326',
使用GeoJSON格式时,结果应自动转换为视图投影。最后我发现了主要问题
运行该网页后,浏览器控制台中会显示以下消息,我不知道
已阻止跨源请求:同一源策略不允许读取位于的远程资源http://localhost:8080/geoserver/rest/. (原因:缺少CORS标头“访问控制允许原点”)。
它通过阻止跨源请求得到解决:同源策略不允许读取远程资源http://localhost:8080/geoserver/rest/. (原因:缺少CORS标头“访问控制允许原点”)
并通过在geoserver Directority中取消web.xml文件中的交叉原点线注释来解决此问题
这一页帮助我:
如果放大,您可能会在距离[0,0]180米的范围内找到您的特征。您的视图是EPSG:3857,如果服务器支持对EPSG:3857的请求,您应该更改url以反映这一点,否则您将需要一个加载器函数来转换几何体。使用strategy all,您不需要url函数来包含范围,因为它是无限的,但是对于其他策略,如果视图投影不同,您还需要将范围从视图投影转换为请求投影。感谢您的回复mike为了防止地图上的数据丢失,我使用了一个非常大的vactor文件,它几乎覆盖了地球表面的一半!nithing在地图中显示如果请求无效,则不会显示任何内容,并且它可能太小,无法查看数据是否位于错误的投影中。我更改了url,但未更改任何内容,并尝试将视图投影更改为“EPSG:4326”结果相同。我是否可能在图层或工作区配置中出错?