我正在构建一个使用this javascript plugin上传ZIP文件并将其中的shapefile转换为GeoJSON的应用程序,以便将其添加到地图中。
我的应用程序使用ExtJS 6.0,我似乎无法找到如何使用" filefield"按钮将压缩文件的路径提供给插件。问题是文件字段只提供了一个伪路径(我认为它可以用于某种用户保护)。因此,我不能使用我的表单给出的路径作为插件的输入(我得到404错误,因为它使用C:\ fakepath \ file.zip作为输入)。如果我手动提供路径,一切正常......
这是我的功能代码:
var getShp = function getShp(){
Ext.create('Ext.window.Window', {
title: 'Upload new ESRI shapefile',
width: 400,
items: {
xtype: 'form',
id: 'urlFormId',
items: [{
xtype: 'filefield',
name: 'shp',
fieldLabel: 'Shapefile (*.shp)',
msgTarget: 'side',
allowBlank: false,
anchor: '100%',
buttonText: 'Select shapefile...'
}],
buttons: [{
text: 'Add layer',
handler: function() {
var form = Ext.getCmp('urlFormId').getForm();
var shpUrl = form.findField('shp').getValue();
var vectorSource = new ol.source.Vector();
loadshp({
url: shpUrl,
encoding: 'UTF-9',
EPSG: '4326'
}, function(data) {
shpUp = new ol.layer.Vector({
name: 'Test world',
source: new ol.source.Vector({
features: (new ol.format.GeoJSON()).readFeatures(data)
})
})
olMap.addLayer(shpUp);
});
}
}]
}
}).show();
}