Javascript 在OL6.4中使用WFS层

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;

我正在尝试使用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;
    从“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”结果相同。我是否可能在图层或工作区配置中出错?