读取 GML 文件时出现问题(未重新投影)
Problems reading GML file (not reprojected)
我正在尝试使用此代码读取 openlayers 3.4.0 文件中的 GML
var from = ol.proj.get("EPSG:4326");
var to = ol.proj.get("EPSG:3857");
var gml = new ol.source.StaticVector({
format: new ol.format.GML2({dataProjection: from,
featureProjection: to}),
projection: 'EPSG:3857',
url: 'test_4326.gml'
});
var vectorLayer = new ol.layer.Vector({
source: gml
});
var map;
function init(){
map = new ol.Map({
layers: [vectorLayer],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
}
它适用于 KML 或 GeoJSON(更改 ol.format 并删除相关参数)但不适用于 GML 文件(ol.format.GML2 中也没有参数),我尝试了不同的 gml文件,但没有任何工作。似乎在阅读阶段也没有重新投影坐标。
读取 GMl 文件的正确方法是什么?
目前执行此操作的方法是使用普通 ol.source.Vector,手动使用 XHR 获取数据并直接对格式进行解析,这样您就可以为 readFeatures 函数指定所有选项。之后,您将向源添加功能。例如:
var vector = new ol.layer.Vector({
source: new ol.source.Vector()
});
var format = new ol.format.GML2();
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "gml.xml", true);
xmlhttp.onload = function() {
var xmlDoc = xmlhttp.responseXML;
var features = format.readFeatures(xmlDoc, {
featureProjection: 'EPSG:3857',
dataProjection: 'EPSG:4326'
});
vector.getSource().addFeatures(features);
};
xmlhttp.send();
我正在尝试使用此代码读取 openlayers 3.4.0 文件中的 GML
var from = ol.proj.get("EPSG:4326");
var to = ol.proj.get("EPSG:3857");
var gml = new ol.source.StaticVector({
format: new ol.format.GML2({dataProjection: from,
featureProjection: to}),
projection: 'EPSG:3857',
url: 'test_4326.gml'
});
var vectorLayer = new ol.layer.Vector({
source: gml
});
var map;
function init(){
map = new ol.Map({
layers: [vectorLayer],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
}
它适用于 KML 或 GeoJSON(更改 ol.format 并删除相关参数)但不适用于 GML 文件(ol.format.GML2 中也没有参数),我尝试了不同的 gml文件,但没有任何工作。似乎在阅读阶段也没有重新投影坐标。 读取 GMl 文件的正确方法是什么?
目前执行此操作的方法是使用普通 ol.source.Vector,手动使用 XHR 获取数据并直接对格式进行解析,这样您就可以为 readFeatures 函数指定所有选项。之后,您将向源添加功能。例如:
var vector = new ol.layer.Vector({
source: new ol.source.Vector()
});
var format = new ol.format.GML2();
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "gml.xml", true);
xmlhttp.onload = function() {
var xmlDoc = xmlhttp.responseXML;
var features = format.readFeatures(xmlDoc, {
featureProjection: 'EPSG:3857',
dataProjection: 'EPSG:4326'
});
vector.getSource().addFeatures(features);
};
xmlhttp.send();