Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps Arc 1960/UTM 36区至Lat长,适用于谷歌地图_Google Maps_Gis_Map Projections_Wgs84_Dotspatial - Fatal编程技术网

Google maps Arc 1960/UTM 36区至Lat长,适用于谷歌地图

Google maps Arc 1960/UTM 36区至Lat长,适用于谷歌地图,google-maps,gis,map-projections,wgs84,dotspatial,Google Maps,Gis,Map Projections,Wgs84,Dotspatial,我有这个坐标:778597.31250000019148353。我被告知该坐标为Arc 1960/UTM区域36S 当我点击“获取地图上的位置”并输入上述坐标时,它会将点放置在地图上的正确位置(在字段的拐角处) 我需要做什么样的转换/投影才能使其成为经纬度,然后在谷歌地图中转到同一点 我尝试了各种方法,但似乎最终得到了400-200m对角线偏移 正确的纬度和经度应为:Lat:-7.699944长:35.5262575(字段的一角,请参阅): 我正在使用dotspace var Arc19

我有这个坐标:
778597.31250000019148353
。我被告知该坐标为
Arc 1960/UTM区域36S

当我点击“获取地图上的位置”并输入上述坐标时,它会将点放置在地图上的正确位置(在字段的拐角处)

我需要做什么样的转换/投影才能使其成为经纬度,然后在谷歌地图中转到同一点

我尝试了各种方法,但似乎最终得到了
400-200m
对角线偏移

正确的纬度和经度应为:
Lat:-7.699944长:35.5262575
(字段的一角,请参阅):

我正在使用dotspace

    var Arc1960UTMZone36S = KnownCoordinateSystems.Projected.UtmOther.Arc1960UTMZone36S; 
    Arc1960UTMZone36S.AuthorityCode = 21036;

    var WGS1984 = KnownCoordinateSystems.Geographic.World.WGS1984;
    //4326 google earth  
    //3857 for google maps
    WGS1984.AuthorityCode = 3857;

    double[] xy = new double[2] { 778597.3125000001, 9148353 };
    double[] z = new double[1] { 0d };

    Reproject.ReprojectPoints(xy, z, Arc1960UTMZone36S, WGS1984, 0, 1);

    var latitude = xy[1];
    var longitude = xy[0];

    Debug.WriteLine($"Lat: {latitude} Long: {longitude}");

有人知道它为什么会被抵消吗


解决方案是使用
proj4
字符串而不是已知的坐标系

而不是

var Arc1960UTMZone36S = KnownCoordinateSystems.Projected.UtmOther.Arc1960UTMZone36S; 
Arc1960UTMZone36S.AuthorityCode = 21036;
使用


虽然,我不明白为什么。

解决方案是使用
proj4
字符串而不是已知的坐标系

而不是

var Arc1960UTMZone36S = KnownCoordinateSystems.Projected.UtmOther.Arc1960UTMZone36S; 
Arc1960UTMZone36S.AuthorityCode = 21036;
使用


虽然我不明白为什么。

可能值得在您提到的工具上询问。将提供的坐标转换为
-7.69721021,35.52550186
,那么为什么您认为它应该是
-7.7009819,35.5280201
?当我转到这里时:单击“在地图上获取位置”并输入上述utm坐标,它将点放置在地图上的正确位置(在一个字段的拐角处)。很久以前我确实发布了一个不正确的预期Lat,并且已经修复了它,但是我仍然有一个偏移问题。我想我的问题是:我需要做什么样的转换/投影才能使它变长,然后在Google Maps中的同一点(即WGS84?)可能值得在您提到的工具上询问,将提供的坐标转换为
-7.69721021,35.52550186
,那么为什么您认为它应该是
-7.7009819,35.5280201
?当我转到这里时:单击“在地图上获取位置”并输入上述utm坐标,它将点放置在地图上的正确位置(在字段的拐角处)。很久以前我确实发布了一个错误的预期Lat,并已将其修复,但我仍然存在偏移问题。我想我的问题是:我必须做什么样的转换/投影才能使它变长,然后转到谷歌地图中的同一点(即WGS84?)请在评论/作为新问题询问您对解决方案的任何问题。请不要问答案中的问题。您可以在评论中提出该问题……请在评论/中作为新问题提出有关解决方案的任何问题。请不要问答案中的问题。你可以在评论中问这个问题。。。