程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了OpenLayers 4-适合所选功能大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决OpenLayers 4-适合所选功能?@H_696_1@ 开发过程中遇到OpenLayers 4-适合所选功能的问题如何解决?下面主要结合日常开发的经验,给出你关于OpenLayers 4-适合所选功能的解决方法建议,希望对你解决OpenLayers 4-适合所选功能有所启发或帮助;

要素本身不具有范围,但是其几何图形具有一个范围:

const extent = feature.getGeometry().getExtent()
map.getVIEw().fit(extent);

但是,到目前为止,您似乎还没有在AJAX响应中获得的OpenLayers功能对象,只是一个普通的Json对象。让我们对其进行转换:

var source = new ol.source.Vector({
features: (new ol.format.GeoJsON({
  featureProjection: "epsg:3765" // probably not required in your case
})).readFeatures(featureCollection);

您无需将矢量添加到地图即可确定特定要素及其范围:

onautocomplete: function(txt) {
  var feature = source.getFeatures().find(function(f) { return f.get('JLS_IME') === txt; });
  if (featurE) {
    const extent = feature.getGeometry().getExtent()
    map.getVIEw().fit(extent);
  }
};

解决方法@H_696_1@

又是我。因此,昨天我在缩放到选定的功能时遇到了一个问题,我希望其中一些人可以将我推向正确的方向。

我正在尝试使用Materialize Materialize
Framework实现自动完成/搜索栏。(以下是简单搜索栏的小提琴示例)

  $(document).ready(function(){
    $('input.autocomplete').autocomplete({
      data: {
        "Apple": null,"Microsoft": null,"Google": '@R_607_10107@s://placehold.it/250x250'
      },});
  });

现在,我想做的是使用geojson功能调用和填充数据,并实现所选功能的范围。如果我正确理解,则需要保存所选功能的范围并将其传递给

@H_894_5@map.getView().fit(SELEctedFeature.getsource().getExtent(),animationOptions);

还是我这样做完全错误?

$(document).ready(function() {
function sendItem(val) {
    console.log(val);
}

var animationOptions = {
    duration: 2000,easing: ol.easing.easeOut
};

$(function() {
    $.ajax({
        type: 'GET',url: 'geojson/jls.geojson',dataType: 'json',success: function(responsE) {
            var jls_array = response;
            var features = jls_array.features;
            var jls = {};

            for (var i = 0; i < features.length; i++) {
                var geo = features[i].properties;
                jls[geo['JLS_IME']] = null;
            }
            console.log(jls)
            $('input.autocomplete').autocomplete({
                data: jls,limit: 5,onAutocomplete: function(txt) {
                    sendItem(txt);
                    map.getView().fit(vectorJLs.getsource().getExtent(),animationOptions);
                }
            });
        }
    });
});
});

这是我的geojson对象的示例

{
"type": "FeatureCollection","crs": { "type": "name","properties": { "name":"EPSG:3765" } },"features": [
{ "type": "Feature","properties": { "JLS_MB": "00116","JLS_IME": "BEDEKOVČINA","JLS_ST": "OP","JLS_SJ": "Bedekovčina","ZU_RB": "02","ZU_IME": "Krapinsko-zagorska","ZU_SJ": "Krapina","pov": 51.42 },"geometry": { "type": "Polygon","coordinates": [ [ [ 461117.98,5108379.85 ],[ 461124.53,5108368.39 ],[ 461132.37,5108354.26 ]...

更新-解决方案

因此,正如 Dube 同事用逻辑和实际的解决方案很好地指出的那样,他可以使用简单的.find()方法在geojson层源中查找特征并缩放所选特征。

我只在ajax调用之前用添加的变量调整了一些现有代码

var source_layer = vectorJLs.getsource(); // collecTing layer source

$(function() {
    $.ajax({
        type: 'GET',dataType: 'json'.....

onAutocomplete: function(txt) {
  var feature = source_layer.getFeatures().find(function(f) { return f.get('JLS_IME') === txt; });
  if (featurE) {
    const extent = feature.getGeometry().getExtent()
    map.getView().fit(extent);
  }
};

这是我要迭代的图层,并选择放大功能

大佬总结

以上是大佬教程为你收集整理的OpenLayers 4-适合所选功能全部内容,希望文章能够帮你解决OpenLayers 4-适合所选功能所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: