2017-04-21 22 views
1

私はgeotoolsライブラリを使用しています。私の目標は、座標を入力し、それを含むフィーチャの情報を返します。Geotools get Feature Info

Geotoolsクイックスタートチュートリアルのマップは、私が赤い丸で囲んだボタンで欲しいものを正確に行います。しかし、私は使用された方法を見つけることができませんでした。

私はグーグルで、ドキュメントを読んで、無駄なコードをデバッグしています。このメソッドは、行く方法と思われる: FeatureCollection myCollection = mySimpleFeatureSource.getFeatures(クエリクエリ);

又は

れる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); } }

答えて

1

理想的に完了した後にQuickStartあなたはother tutorialsを介して動作し、そうQuery Tutorialに来る必要があります。これは、単純なFilterの作成方法と、より複雑なQuery(ソート順のあるフィルタ、属性のサブセットの追加など)の作成方法を紹介します。あなたの特徴は、ジオメトリ属性the_geompがポイントである必要があり

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

:だから、最も簡単な方法は、一般的なクエリ言語(CQL)静的toFilterメソッドを使用することです単純なフィルタを作成するには、

あなたが探している小さなツールはInfoToolで、FilterFeatureLayerHelperに構成されています。

関連する問題