gpt4 book ai didi

java - Geotools 获取特征信息

转载 作者:行者123 更新时间:2023-11-30 10:30:53 27 4
gpt4 key购买 nike

我正在使用 geotools 库。我的目标是输入一个坐标,然后获取包含它的要素信息。

Geotools Quickstart 教程的 map 完全按照我想要的方式使用我在下面用红色圈出的按钮。但是,我找不到使用的方法。

我一直在谷歌搜索、阅读文档和调试代码都无济于事。这种方法似乎是要走的路:FeatureCollection myCollection = mySimpleFeatureSource.getFeatures(Query查询);

FeatureCollection myCollection = mySimpleFeatureSource.getFeatures(过滤过滤器);

但我还没有弄清楚,也没有找到如何使用坐标进行查询。如果有人愿意借手,我将不胜感激!

提前致谢!

enter image description here

我正在运行的示例如下:

package org.geotools.tutorial.quickstart;

import java.io.File;

import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.simple.SimpleFeatureSource;
import org.geotools.map.FeatureLayer;
import org.geotools.map.Layer;
import org.geotools.map.MapContent;
import org.geotools.styling.SLD;
import org.geotools.styling.Style;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.data.JFileDataStoreChooser;

/**
* Prompts the user for a shapefile and displays the contents on the screen in a map frame.
* <p>
* This is the GeoTools Quickstart application used in documentationa and tutorials. *
*/
public class Quickstart {

/**
* GeoTools Quickstart demo application. Prompts the user for a shapefile and displays its
* contents on the screen in a map frame
*/
public static void main(String[] args) throws Exception {
// display a data store file chooser dialog for shapefiles
File file = JFileDataStoreChooser.showOpenFile("shp", null);
if (file == null) {
return;
}

FileDataStore store = FileDataStoreFinder.getDataStore(file);
SimpleFeatureSource featureSource = store.getFeatureSource();

// Create a map content and add our shapefile to it
MapContent map = new MapContent();
map.setTitle("Quickstart");

Style style = SLD.createSimpleStyle(featureSource.getSchema());
Layer layer = new FeatureLayer(featureSource, style);
map.addLayer(layer);

// Now display the map
JMapFrame.showMap(map);
}

}

最佳答案

最好在完成 QuickStart 之后你应该完成 other tutorials所以来到Query Tutorial .这将向您介绍如何创建一个简单的 Filter 和更复杂的 Query(它添加到具有排序顺序、属性子集等的过滤器)。

因此,要创建一个简单的过滤器,最简单的方法是使用通用查询语言 (CQL) 静态 toFilter 方法:

Filter f = CQL.toFilter("contains(the_geom,Point("+p.x+" "+p.y+"))"); 

您的特征具有几何属性 the_geom 并且 p 是一个点。

顺便说一句,您正在寻找的小工具是 InfoTool实际的 Filter 是在 FeatureLayerHelper 中构建的.

关于java - Geotools 获取特征信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43532257/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com