私は問題を抱えています。皆さんが私を解決するのを手伝ってくれることを願っています.
DbGeometry ポイント (または DbGeography、両方を使用できます) を取得しました。これが DbGeometry ポリゴン (または DbGeography) 内にあるかどうかを確認したいと思います。
私は現時点でこれをやっています:
var dbZones = new List<WasteManager.Database.Zone>();
foreach(var zone in zones)
{
var res = from z in DatabaseContext.Zones
let boundary =
!z.BoundaryGeometry.IsValid
? SqlSpatialFunctions.MakeValid(z.BoundaryGeometry)
: z.BoundaryGeometry
where z.ID == zone.ID && point.Within(boundary)
select z;
if(res.FirstOrDefault() != null) dbZones.Add(res.FirstOrDefault());
}
したがって、ゾーン (db の EF エンティティ) を反復処理し、このポイントがこの境界内にあるかどうかを確認します。
問題は結果が返されないことですが、境界とその境界内にあるポイントを手動で作成したため、そのポイントがその境界内にあることがわかります。
私がやっていることが間違っているかどうか、これを行う別の方法があるかどうか、誰か教えてもらえますか?
とても感謝しています。
マヌエル