【问题标题】:Finding Latitude and Longitude on the circumference give a lat and long and radius在圆周上查找纬度和经度给出纬度和经度以及半径
【发布时间】:2018-09-09 02:19:41
【问题描述】:

我没有多少数学知识,但我找不到我得到错误数据的原因。我试图从中心顶点(纬度,经度)和半径 500 英里处找到圆周上的所有点。我通过将坐标传递给谷歌地图并获取状态列表来验证结果。输入 lat 是 41.8781 和 long -87,6297 (Chicago IL),我得到的结果只是状态 IL

 public List<Coordinates> PointOnCircle(double lat, double longi, float radius)
    {
        var r = radius / EARTH_RADIUS_NM;
        var list = new List<Coordinates>();
        for (int i = 0; i <= 360;)
        {
            Coordinates coordinates = new Coordinates();
            // Convert from degrees to radians via multiplication by PI/180        
            double x = (r * Math.Cos(i * Math.PI / 180F)) + lat;
            double y = (r * Math.Sin(i * Math.PI / 180F)) + longi;
            coordinates.Latitude = x;
            coordinates.Longitude = y;
            i += 5;
            list.Add(coordinates);
        }
        return list;
    }
  public Dictionary<string,string> GetStatesFromCordinates(List<Coordinates> coordinates)
    {
        var states = new Dictionary<string, string>();
        foreach(var co in coordinates)
        {
            var geoLocation = GoogleService.GetGeoLocation(co.Latitude, co.Longitude);
            var state= geoLocation.results.FirstOrDefault().address_components.FirstOrDefault(ac => ac.types.Any(ty => ty == "administrative_area_level_1"));
            if(state != null)
            {
                var longstatename = state.long_name;
                var shortstatename = state.short_name;
                if(!states.ContainsKey(shortstatename))
                    states.Add(shortstatename, longstatename);
            }
        }
        return states;

【问题讨论】:

    标签: c# geocoding geo


    【解决方案1】:

    您基于英里距离计算三角角的公式是错误的。 1 度纬度大约是地球上任何地方的 69 英里,而 1 度经度则因纬度而异。在赤道,经度一度可以走很远,但在两极,经度移动一度根本不会让你走得很远。

    请参阅https://gis.stackexchange.com/questions/142326/calculating-longitude-length-in-miles,了解要使用的适当公式的讨论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多