Bisher habe ich meine Ergebnisse gefiltert, um zu sehen, ob sie in eine gepufferte Linienfolge fallen. Jetzt möchte ich die Länge des Liniensegments entlang der Linienfolge vom Anfang der Route zu jedem Breiten- und Längengrad in den Spalten 3 und 4 berechnen.Länge der Route entlang der vordefinierten Linienfolge vom Anfang der Linienfolge bis zu Punkten innerhalb einer gepufferten Region um diese Linienfolge berechnen
Die Entfernung, die ich möchte, ist auf dem Foto unten abgebildet :
declare @TripRecordsReportWaypoints table(Column1 int, column3 decimal(25,10), Column4 decimal(25,10), InRouteBuffer bit);
insert into @TripRecordsReportWaypoints values (210,40.1445,-82.9911,1),(211,40.1444,-82.991 ,1),(212,40.1442,-82.9909,1),(213,40.1441,-82.9907,1),(214,40.144 ,-82.9906,1);
declare @Columbus106from71to23 geography;
set @Columbus106from71to23 = Geography ::STLineFromText('LINESTRING(-82.969404 40.142222,-82.972580 40.141951,-82.976319 40.141602, -82.979534 40.141376,-82.981217 40.141339,-82.983593 40.141409)',4326);
declare @Routebuffer geography;
set @Routebuffer = @Columbus106from71to23.STBuffer('20');
select Column1
,Column3
,Column4
,@Routebuffer.STContains(geography::Point(Column3,Column4,4326)) as InRouteBuffer
from @TripRecordsReportWaypoints
where @Routebuffer.STContains(geography::Point(Column3,Column4,4326)) = 1;
Was muss ich den Abstand des Liniensegments von Beginn meiner definierten Linienzug zu jedem Lat, tun müssen, lange zu berechnen. Ich hätte gerne eine Spalte, die DistanceAlongRoute ist.
Dave, ich würde gerne wissen, wie weit ein bestimmter Punkt entlang der Route ist. Gibt es eine einfache Möglichkeit, dies zu berechnen? Ich möchte keine direkte Linienentfernung, ich möchte den Abstand vom Anfang der Linienfolge entlang der Linie bis zum Punkt in meinem Datensatz. Macht das mehr Sinn? – Jon
In diesem Fall möchten Sie möglicherweise die Daten/Abfrage in Ihrer Frage anpassen, da keiner der Punkte in Ihren Daten tatsächlich von Ihrer Frage im Puffer ist. Zweitens, was meinst du mit * wie weit entlang der Route *? Wenn sich der Punkt innerhalb des Puffers befindet, möchten Sie entlang der "Linienfolge" bis direkt nördlich oder südlich des Punkts und dann in gerader Linie dorthin fahren oder den kürzesten Weg vom nächsten Teil der Linie nehmen? – iamdave
Wenn sich der Punkt innerhalb des Puffers befindet, möchte ich entlang der Linienfolge fahren, bis er an dem Punkt mit der kürzesten Route vom nächsten Teil der Linie ist. Also der Abstand vom Anfang der Zeile bis zum nächsten Punkt der Zeile bis zum Punkt, der in Spalte 3 und 4 angegeben ist. – Jon