使用 C# winform 应用程序从 Google 地图 URL 中提取纬度和经度

Extract latitude and longitude from Google Maps URL using C# winform Application

如何使用 C# winform 应用程序以编程方式从 Google 地图 URL 中提取纬度和经度?

您可以使用以下代码。您可以将 urlGoogleMaps(字符串)更改为您喜欢的任何其他 URL。本例为美国纽约自由女神像所在位置

    public void YourCode()
    {
        string urlGoogleMaps = "https://www.google.com/maps/place/New+York,+NY,+USA/@40.6893423,-74.0446546,18.75z/data=!4m5!3m4!1s0x89c24fa5d33f083b:0xc80b8f06e177fe62!8m2!3d40.7127753!4d-74.0059728";
        Coordination LibertyStatue = new Coordination(urlGoogleMaps);

        Console.WriteLine("Statue of Liberty:");
        Console.WriteLine("Latitude: " + LibertyStatue.Latitude);
        Console.WriteLine("Longitude: " + LibertyStatue.Longitude);
        Console.WriteLine("Height: " + LibertyStatue.Height);
    }

    public class Coordination
    {
        public float Latitude;
        public float Longitude;
        public float Height;

        public Coordination(string urlGoogleMaps)
        {
            string rawCoords = urlGoogleMaps.Split('/').Where(c => c.StartsWith("@") && c.EndsWith("z")).FirstOrDefault();
            Latitude = float.Parse(rawCoords.Split(',')[0].TrimStart('@'));
            Longitude = float.Parse(rawCoords.Split(',')[1]);
            Height = float.Parse(rawCoords.Split(',')[2].TrimEnd('z'));
        }
    }

注意;当 url 不适合满足这些方法时,您可能想要添加一些预防措施。