我有这个脚本运行:
var map;
var map = new ol.Map({
target: 'map',
renderer: ol.RendererHint.CANVAS,
view: new ol.View2D({
center: ol.proj.transform([16.37, 48.21], 'EPSG:4326', 'EPSG:3857'),
zoom: 11
}),
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuestOpenAerial()
}),
new ol.layer.Vector({
source: new ol.source.Vector({
url: 'http://ginyu.at:8080/geoserver/wienbike/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=wienbike%3Ainput2&maxfeatures=50&outputformat=json',
parser: new ol.parser.GeoJSON()
})
})
]
});
为什么图层没有显示 . 我有时会从地理服务器中获得“不够的permgen空间”错误?与那个问题有关吗?或者我是否需要对地理服务器进行任何调整才能发布 Map ?如果您只在浏览器中输入网址,则会获得geojson代码 . 提前谢谢了
2 回答
只是指出你的geojson文件没有问题,但它有两个点,一个在布达佩斯附近,另一个靠近也门(我用了http://geojsonlint.com/)
那会是问题吗?
如果您使用的是Openlayers,则可以尝试使用Openlayers GeoRSS图层而不是矢量图层 . 使用矢量图层获取数据时,有许多事情需要在openlayers内部进行配置 .
尝试类似的东西:
如果转到链接显示GeooRSS代码,那么问题就在于geoserver,而不是openlayers如何处理数据 .
如果你真的想使用矢量,那么尝试使用这些选项让Openlayers知道如何处理数据 . 特别重要的是策略,因为这可以让Openlayers知道何时去获取数据和格式,因为它让它知道数据的格式 .
最后要检查的是,您的 Map 和数据使用相同的投影 . 这条线:
建议您期望您的 Map 位于EPSG:3857 . 我无法看到你已经将 Map 设置为任何地方的投影 . 当您使用MapQuestOpenAriel图层时,我认为这是正确的投影 . 如果您的所有数据都在同一个项目中,那么这可能不是问题 . 您需要确保您的georss数据在该投影中 . 查看通过GeoRSS Feed输入的数据,它似乎位于EPSG:4326中 . 这意味着它无法在您的 Map 上正确投影 . 这意味着您需要重新投影GeoRSS数据的坐标 . 我们可以通过在Openlayers GeoRSS层中指定投影来实现:
我无法找到关于Openlayers的'parser'变量的任何文档 . 这可能意味着你正在使用不同的库或更旧的库 . 如果是这种情况,我上面所说的可能没有帮助 .