2016-08-03 23 views
2

Ich möchte alle Städte in der Nähe einer bestimmten Route berechnen.C# linq Der nächste Punkt von einer bestimmten Route

Die Idee ist, eine Bounding Box zwischen 2 Koordinatenpunkten zu erstellen.

Bounding box

und Abfrage der Datenbank mit Linq alle Städte innerhalb dieser Box zu bekommen.

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)); 

Wie kann ich den Begrenzungsrahmen zwischen den zwei Punkten erstellen?

Antwort

0

Wenn Sie zwei Punkte haben: (x1, y1) und (x2, y2), dann sind die Ecken Ihrer Bounding Box: (x1, y1), (x1, y2), (x2, y2), (x2, y1). Dies setzt voraus, dass Ihnen die Reihenfolge der Punkte Ihrer Bounding Box nicht wichtig ist.