こんにちは、レイヤージオメトリを選択し、その色を変更したり強調表示したりする関数を作成しようとしています。
私はFindGeoNearPoint
関数を見つけましたが、これはSharpMap.Geometries
もはや存在せず、GeoAPI.Geometry に置き換えられた古いものを扱います。
FindGeoNearPoint
関数を変更して GeoAPI を使用するにはどうすればよいですか
これが私の試みです
public SharpMap.Data.FeatureDataRow FindGeoNearPoint(GeoAPI.Geometries.IPoint pos, SharpMap.Layers.VectorLayer layer, double amountGrow)
{
GeoAPI.Geometries.Envelope bbox = new GeoAPI.Geometries.Envelope();
SharpMap.Data.FeatureDataSet ds = new SharpMap.Data.FeatureDataSet();
layer.DataSource.ExecuteIntersectionQuery(bbox, ds);
DataTable tbl = ds.Tables[0] as SharpMap.Data.FeatureDataTable;
NetTopologySuite.IO.WKTReader reader = new NetTopologySuite.IO.WKTReader();
GeoAPI.Geometries.IGeometry point = reader.Read(pos.ToString());
if (tbl.Rows.Count == 0)
return null;
double distance = point.Distance(reader.Read((tbl.Rows[0] as SharpMap.Data.FeatureDataRow).Geometry.ToString()));
SharpMap.Data.FeatureDataRow selectedFeature = tbl.Rows[0] as SharpMap.Data.FeatureDataRow;
if (tbl.Rows.Count > 1)
for (int i = 1; i < tbl.Rows.Count; i++)
{
GeoAPI.Geometries.IGeometry line = reader.Read((tbl.Rows[i] as SharpMap.Data.FeatureDataRow).Geometry.ToString());
if (point.Distance(line) < distance)
{
distance = point.Distance(line);
selectedFeature = tbl.Rows[i] as SharpMap.Data.FeatureDataRow;
}
}
return selectedFeature;
}