我想用多个下拉菜单选择并缩放Map。我想我在第二次更新时遇到了.getgeometry错误,因为我的url中有cql_过滤器。当我进行第一次选择时,选定的特征将放大。无论我选择第二个选项中的哪一个,我都会得到一个错误。
const extentyol=yollar.getfeatures().getarray()[selectyol].getgeometry().getextent();
我在这部分有错误,但在第一部分效果很好。。
我不明白我哪里做错了。我的错在哪里
如果有人能帮忙,非常感谢:*
var url = 'http://localhost:8080/geoserver/kbs/ows? service=WFS&version=1.0.0&request=GetFeature&typeName=kbs:mahalle&outputFormat=application/json&SRS=EPSG:3857';
$.getJSON(
url,
function (data) {
loadFeatures(data);
}
);
function loadFeatures(data) {
// load vector source
mahalle.getSource().addFeatures(new ol.format.GeoJSON().readFeatures(data));
const featuresmah = mahalle.getSource().getFeatures();
// add select options
$.each(featuresmah, function (key, value) {
$('#mahalleId').append('<option value=' + value.get('objectid') + '>' + value.get('yazi') + '</option>');
});
$('#mahalleId').on('change', function () {
var selected = $('#mahalleId').val();
const extentmah = mahalle.getSource().getFeatures()[selected]
.getGeometry().getExtent();
map.getView().fit(extentmah, map.getSize());
$.ajax({
method: 'GET',
url: 'http://localhost:8080/geoserver/kbs/wfs',
data: {
service: 'WFS',
request: 'GetFeature',
typename: 'kbs:yollar',
outputFormat: 'application/json',
cql_filter: "mahalle_id='" + mahalleId.value + "'",
srsname: 'EPSG:3857'
},
success: function (response) {
yollar.getSource().addFeatures(new ol.format.GeoJSON().readFeatures(response));
map.getView().fit(yollar.getSource().getExtent());
const featuresyol = yollar.getSource().getFeatures();
$.each(featuresyol, function (key, value) {
$('#yolId').append('<option value=' + value.get('objectid') + '>' + value.get('sokak_adi') + '</option>');
});
$('#yolId').on('change', function (e) {
const selectyol = $('#yolId').val();
const extentyol = yollar.getFeatures().getArray()[selectyol]
.getGeometry().getExtent();
map.getView().fit(extentyol, map.getSize());
console.log(selectyol.val());
});
},
fail: function (jqXHR, textStatus) {
console.log("Request failed: " + textStatus);
}
});
})
}[enter image description here][1]
暂无答案!
目前还没有任何答案,快来回答吧!