Ich habe zwei GPS-Koordinaten Ich wollte Entfernung zwischen denen berechnen, aber das Ergebnis auf SQL Server ist völlig anders als Ergebnis in c # Ich googelte und festgestellt, dass die beiden Ansätze Entfernung in Metern zurück, aber dieser Unterschied macht mich verrückt.
SQL SERVER-Abfrage
%Vor%Web-API
%Vor%Antwort
%Vor%Vielen Dank im Voraus.
Überprüfen Sie die Breite und Länge in der WKT-Darstellung des Punktes in SQL, wenn Sie den Punkt definieren. Sie sind wie folgt GEOGRAPHY::POINT(Latitude, Longitude, srid)
:
Wenn Sie jedoch DBGeography
im C # -Code definieren, ist die Reihenfolge anders: "POINT(Longitude Latitude)"
Auch sollten Sie diese Orte in der Tabelle Users
überprüfen. Stellen Sie sicher, dass sie beim Einsetzen korrekt eingesetzt wurden. Sonst sind sie woanders, nicht an der Stelle von Users
Mehr :
%Vor%Was ist WKT und woher kommt es? Es ist eine W ell- K nown T ext Darstellung verschiedener Geometrietypen, die von OGC im Simple Feature Access Spezifikation und allen Softwareanbietern wird empfohlen, der Kompatibilität zu folgen. Diese Spezifikation zeigt, wie Punkt, Linie (Linienfolge), Polygon und einige andere Geometrietypen als Text (WKT) und Binär (WKB) definiert werden.
SQL Server folgt dieser Spezifikation nicht vollständig und wir sehen das Ergebnis der Nichtbefolgung von Standards, verursacht solche Probleme in verschiedenen Komponenten sogar der gleichen Firma.
Wechseln Sie die Lat / Lng in API Version. In der API sollte Lng Lat
gehen %Vor%Gibt
zurück %Vor%Dies ist, wo ich einen Lat / Lng Usinq meine UDF
umgedreht %Vor%Gibt
zurück %Vor%Das Problem ist sehr gering, aber knifflig
SQL SERVER-Abfrage
%Vor%SQL Server definiert einen Punkt, bei dem der erste Wert der Breitengrad und der zweite Wert der Längengrad ist.
Web-API
%Vor%C # definiert einen Punkt vom obigen Format in der Weise, dass der erste Wert der Längengrad und der zweite der Breitengrad
istTags und Links .net sql-server c# entity-framework geospatial