openlayers 3加载GeoServer发布的wfs类型服务
2024-08-28 01:09:50
转:https://blog.csdn.net/u013323965/article/details/52449502
问题产生:
openlayer3加载WFS存在跨域问题,需要用jsonp解决,而jsonp需要用script加载,但加载有误,如图所示,读取cite:bou2_4p图层的GeoJSON
载入地址是这样的http://localhost:8080/geoserver/cite/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=cite:bou2_4p&maxFeatures=20000000&outputFormat=application%2Fjson
(与WMS不同,真正的发布地址并不是这个)
在geoserver中看到,它输出的格式是json,但如果在js中调用会存在跨域的问题产生
但出现了如图所示的问题,查看开发工具发现json数据没有套上回调名。
调用代码
在代码中,我将输出格式改变为javascript来解决jsonp
//参数字段
var wfsParams = {
service : 'WFS',
version : '1.0.0',
request : 'GetFeature',
typeName : 'cite:bou2_4p', //图层名称
outputFormat : 'text/javascript', //重点,不要改变
format_options : 'callback:loadFeatures' //回调函数声明
}; var vectorSource = new ol.source.Vector({
format: new ol.format.GeoJSON(),
loader: function(extent, resolution, projection) { //加载函数
var url = 'http://localhost:8080/geoserver/wfs';
$.ajax({
url: url,
data : $.param(wfsParams), //传参
type : 'GET',
dataType: 'jsonp', //解决跨域的关键
jsonpCallback:'loadFeatures' //回调 });
},
strategy: ol.loadingstrategy.tile(new ol.tilegrid.createXYZ({
maxZoom: 25
})),
projection: 'EPSG:4326'
});
//回调函数使用
window.loadFeatures = function(response) {
vectorSource.addFeatures((new ol.format.GeoJSON()).readFeatures(response)); //载入要素 };
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
但出现了如图所示的问题,查看开发工具发现json数据没有套上回调名。
问题的解决
问题应该是在geoserver中产生的,后来在geoserver的web.xml中发现,jsonp的注释没有被注销,导致无法输出jsonp
最后结果,看到已经没有问题
最新文章
- 你可能没注意的CSS单位
- Java 的设计模式之一装饰者模式
- css-单位%号-background-size-background-position-遁地龙卷风
- Javascript 截取2位小数
- IOS常见错误之一连线错误
- java7笔记
- 第19章 使用PXE+Kickstart部署无人值守安装
- Python基础学习笔记(八)常用字典内置函数和方法
- while循环中不支持循环使用curl
- 使用 Feedly RSS阅读器订阅技术大牛的博客
- 任意长度的正小数的加法(YT新人之巅峰大决战05)
- git提交如何忽略某些文件
- Fork/Join框架详解
- JS的基础知识回顾
- Html - 后台模板
- sublime 安装ctags跳转以及跳转快捷键
- C++11 类型后置语法
- 《DSP using MATLAB》Problem 7.9
- validateRequest 相关的作用
- 『TensorFlow』SSD源码学习_其四:数据介绍及TFR文件生成
热门文章
- 【JMeter4.0学习(十一)】之JMeter对(Mysql、Oracle)数据库性能测试脚本开发
- laravel学习之路4artisan
- centos7 安装vnc服务
- Spring Cloud 微服务六:调用链跟踪Spring cloud sleuth +zipkin
- SourceTree超前一个版本,落后N个版本
- MATLAB循环结构:while语句P69范数待编
- POJ 2993 Emag eht htiw Em Pleh【模拟画棋盘】
- 换教室(期望+DP)
- JAXB解析XML为对象
- 海信电视 LED55K370 升级固件总结【含固件下载地址】