大佬教程收集整理的这篇文章主要介绍了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);
}
};
又是我。因此,昨天我在缩放到选定的功能时遇到了一个问题,我希望其中一些人可以将我推向正确的方向。
我正在尝试使用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,请注明来意。