SQL Server-Geografie vs DbGeography

8

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.

    
Muzammal Hussain 18.05.2017, 12:52
quelle

3 Antworten

13

Ü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) :

%Vor%

Wenn Sie jedoch DBGeography im C # -Code definieren, ist die Reihenfolge anders: "POINT(Longitude Latitude)"

%Vor%

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.

    
Hossein Narimani Rad 18.05.2017, 13:06
quelle
4

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%     
John Cappelletti 18.05.2017 13:06
quelle
2

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

ist     
Muzammal Hussain 18.05.2017 13:48
quelle