C#linq特定路线的最近点

时间:2016-08-03 08:11:56

标签: c# linq intersection

我想计算靠近特定路线的所有城市。

我们的想法是在2个坐标点之间创建一个边界框。

Bounding box

使用linq查询数据库以获取此框中的所有城市。

Database

var polygon = DbGeography.PolygonFromText(@"POLYGON((145.2898592378906 -37.66376896413059,
                                                     145.2898592378906 -37.93504877166811, 
                                                     144.7075838472656 -37.93504877166811, 
                                                     144.7075838472656 -37.66376896413059, 
                                                     145.2898592378906 -37.66376896413059))", 
                                                     4326);

var CitiesQuery = db.Cities.Where(p => p.Position.Intersects(polygon));

如何在2点之间创建边界框?

1 个答案:

答案 0 :(得分:0)

如果你有两个点:(x1,y1)和(x2,y2),那么边界框的角是:(x1,y1),(x1,y2),(x2,y2),(x2 ,y1)。这假设您不关心边界框的点的顺序。