openlayers.getgeometry未定义(多重约束对象)

fafcakar  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(299)

我想用多个下拉菜单选择并缩放Map。我想我在第二次更新时遇到了.getgeometry错误,因为我的url中有cql_过滤器。当我进行第一次选择时,选定的特征将放大。无论我选择第二个选项中的哪一个,我都会得到一个错误。
const extentyol=yollar.getfeatures().getarray()[selectyol].getgeometry().getextent();
我在这部分有错误,但在第一部分效果很好。。
我不明白我哪里做错了。我的错在哪里
如果有人能帮忙,非常感谢:*

  1. 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';
  2. $.getJSON(
  3. url,
  4. function (data) {
  5. loadFeatures(data);
  6. }
  7. );
  8. function loadFeatures(data) {
  9. // load vector source
  10. mahalle.getSource().addFeatures(new ol.format.GeoJSON().readFeatures(data));
  11. const featuresmah = mahalle.getSource().getFeatures();
  12. // add select options
  13. $.each(featuresmah, function (key, value) {
  14. $('#mahalleId').append('<option value=' + value.get('objectid') + '>' + value.get('yazi') + '</option>');
  15. });
  16. $('#mahalleId').on('change', function () {
  17. var selected = $('#mahalleId').val();
  18. const extentmah = mahalle.getSource().getFeatures()[selected]
  19. .getGeometry().getExtent();
  20. map.getView().fit(extentmah, map.getSize());
  21. $.ajax({
  22. method: 'GET',
  23. url: 'http://localhost:8080/geoserver/kbs/wfs',
  24. data: {
  25. service: 'WFS',
  26. request: 'GetFeature',
  27. typename: 'kbs:yollar',
  28. outputFormat: 'application/json',
  29. cql_filter: "mahalle_id='" + mahalleId.value + "'",
  30. srsname: 'EPSG:3857'
  31. },
  32. success: function (response) {
  33. yollar.getSource().addFeatures(new ol.format.GeoJSON().readFeatures(response));
  34. map.getView().fit(yollar.getSource().getExtent());
  35. const featuresyol = yollar.getSource().getFeatures();
  36. $.each(featuresyol, function (key, value) {
  37. $('#yolId').append('<option value=' + value.get('objectid') + '>' + value.get('sokak_adi') + '</option>');
  38. });
  39. $('#yolId').on('change', function (e) {
  40. const selectyol = $('#yolId').val();
  41. const extentyol = yollar.getFeatures().getArray()[selectyol]
  42. .getGeometry().getExtent();
  43. map.getView().fit(extentyol, map.getSize());
  44. console.log(selectyol.val());
  45. });
  46. },
  47. fail: function (jqXHR, textStatus) {
  48. console.log("Request failed: " + textStatus);
  49. }
  50. });
  51. })
  52. }[enter image description here][1]

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题