Web design and hosting, database, cloud and social media solutions that deliver business results
  • Des solutions d'affaires
    • Automatisation des processus robotiques
    • Logiciel
    • Services de base
      • Intégration de données
      • Power BI
      • Services d'entrepôt de données
      • Tools
    • Conception de site Web
      • Localisation et traduction Web
      • Sécurité du site Web
    • Services Cloud
      • Microsoft Azure
    • Média Social
    • Microsoft Office
  • Académie
    • Conception de bases de données d'apprentissage
      • Utilisation de données SQL Server
      • Obtenir la requête ouverte
      • Plan de maintenance SQL Server 2008
      • Utilisation des dates SQL Server
      • Utilisation de SQL Server Pivot-Unpivot
      • Utiliser SQL Server Fonctions
    • Apprentissage de la conception Web
      • CSS
      • ASP NET
    • Cloud d'apprentissage et services informatiques
      • Demande SSL et génération de fichier PFX dans OpenSSL étapes simples
  • Sur
    • Carrières
    • Équipe
      • Ali Al Amine
      • Chester Copperpot
      • Gavin Clayton
      • Suneel Kumar
    • Portefeuille
عربى (AR)čeština (CS)Deutsch (DE)English (EN-US)English (EN-GB)Español (ES)فارسی (FA)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

Calculer la distance entre deux coordonnées de latitude / longitude dans SQL Server

Créez une fonction SQL qui calcule la distance entre les coordonnées de latitude / longitude en miles ou en kilomètres

Le contexte

Utilisation de SQL Server Distance.png

Calculer la distance entre deux endroits peut être assez délicat, il existe de bons articles, mais cette page n'entrera que dans le code.

Pour plus d'informations sur la façon dont les distances sont calculées sur une sphère, jetez un œil à Haversine Formula sur Wikipédia , c'est un peu complexe, nous ne voulons donc pas dupliquer le contenu.

Nous avons trouvé une partie de ce code en ligne et l'avons adapté à une fonction SQL, avec la possibilité de demander des miles ou des kilomètres.

Cela ne calcule que "à vol d'oiseau", mais il a été testé dans le cadre d'une application que nous avions construite sur un iPhone et les distances étaient parfaites.

SQL Server

CREATE FUNCTION CoordinateDistanceMiles(@Latitude1 float,@Longitude1 float,@Latitude2 float,@Longitude2 float,@Distance NVARCHAR(10))RETURNS FLOATAS BEGIN-- CONSTANTSDECLARE @EarthRadiusInMiles FLOAT=(CASE @Distance WHEN 'Miles' THEN 3959 WHEN 'Kilometers' THEN 6371 ELSE 0 END);DECLARE @PI FLOAT=PI();DECLARE @lat1Radians FLOAT=@Latitude1 * @PI / 180DECLARE @long1Radians FLOAT=@Longitude1 * @PI / 180;DECLARE @lat2Radians FLOAT=@Latitude2 * @PI / 180;DECLARE @long2Radians FLOAT=@Longitude2 * @PI / 180;RETURN Acos(Cos(@lat1Radians)*Cos(@long1Radians)*Cos(@lat2Radians)*Cos(@long2Radians)+Cos(@lat1Radians)*Sin(@long1Radians)*Cos(@lat2Radians)*Sin(@long2Radians)+Sin(@lat1Radians)*Sin(@lat2Radians)) * @EarthRadiusInMiles;END

Was this helpful?

Please note, this commenting system is still in final testing.

Author

Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink Politique de cookieSitemap

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
Les paramètres de ce site sont configurés pour autoriser tous les cookies. Ceux-ci peuvent être modifiés sur notre page cookies. En continuant à utiliser ce site, vous acceptez l'utilisation de cookies.
Ousia Logo
Logout
Ousia CMS Loader