精华内容
下载资源
问答
  • 批量点,矩阵形式给出,MATLAB经纬度坐标转换为平面坐标;Mercator投影变换。需要调用单点经纬度坐标转换为平面坐标的函数
  • 批量点,矩阵形式给出,MATLAB经纬度坐标转换为平面坐标;Mercator投影变换。调用单点经纬度坐标转换为平面坐标的函数也在文件中。博客中有详细解释和C++代码...
  • 经纬度坐标xy坐标转换程序

    热门讨论 2010-08-27 15:13:20
    根据坐标系和分带,从经纬度直接生成xy坐标,或xy坐标,生成经纬度
  • 在我们的屏幕上,有一张地图,这张地图经过缩放、平移、旋转,最终地理坐标和屏幕坐标的关系大致如下图所示: 这种关系要怎么描述呢?我们可以假设地图是一张纸,而屏幕是一堵墙。只要我们有两个图钉,我们就能把...

    在我们的屏幕上,有一张地图,这张地图经过缩放、平移、旋转,最终地理坐标和屏幕坐标的关系大致如下图所示:

    这种关系要怎么描述呢?我们可以假设地图是一张纸,而屏幕是一堵墙。只要我们有两个图钉,我们就能把纸定在墙上。我们把这两个点称为锚点。锚点在屏幕坐标系上的坐标是(x1,y1)和(x2,y2),对应在地理坐标系上的坐标是(lon1,lat1)和(lon2,lat2)。

    那现在的问题就变成了,已知两个锚点的坐标,

    (1)地理坐标转屏幕坐标:已知任意一点的地理坐标(lon,lat),求它在屏幕上的坐标(x,y)

    (2)屏幕坐标转地理坐标:已知任意一点的屏幕坐标(x,y),求它的经纬度坐标(lon,lat)

    转换算法

    1、地理坐标平面化

    首先是地理坐标的平面化转化。在一个小范围内(例如是方圆几公里内),我们可以假设地面是平的,而不是弯的。如果经纬度都用弧度表示,那么1纬度对应的长度是:

    1lat_len=R*lat

    其中R是地球半径。

    而相同经度间的距离会随着纬度的增加而减少,在lat这一纬度下,1经度对应的长度是:

    1lon_len=R*lon*cos(lat)

    那么,(lon,lat)这个坐标平面化后的坐标就是:(R*lon*cos(lat),R*lat)

    2、向量法

    由已知点和未知点组成两组向量:

    由于坐标系转换是线性变换,所以两组向量有以下特性:

    (1)两向量在不同的坐标系中的长度比是相同的。

    (2)两向量在不同的坐标系中的夹角是相同的。

    根据上面两个特性,我们可列出方程组:

    设向量1为(dx1,dy1),(dlon1,dlat1),向量2为(dx2,dy2),(dlon2,dlat2),

    其中dx1=x2-x1,dy1=y2-y1,dlon1=lon2-lon1,dlat1=lat2-lat1

    dx2=x-x1,dy2=y-y1,dlon2=lon-lon1,dlat2=lat-lat1,

    然后k1=norm(dx1,dy1),k2=norm(dlon1,dlat1),k3=norm(dx2,dy2),k4=norm(dlon2,dlat2)

    有方程组:

    (1)k1/k2 = k3/k4

    (2)(dx1*dlon1+dy1*dlat1)/k1/k2 = (dx2*dlon2+dy2*dlat2)/k3/k4

    通过解上面的方程组,我们就能得到未知和屏幕坐标或未知的地理坐标。

    3、C#代码实现

    地理坐标转屏幕坐标:

    double lon_cos = Math.Cos(lat2 * Math.PI / 180);
    
    double m = (lon2 - lon1) * lon_cos;
    double n = (lat2 - lat1);
    double p = (lon - lon1) * lon_cos;
    double q = (lat - lat1);
    
    double M = x2 - x1;
    double N = y2 - y1;
    
    double a = (p * p + q * q) * (M * M + N * N) / (m * m + n * n);
    double b = (m * p + q * n) * norm(M, N) * Math.Sqrt(a) / (norm(m, n) * norm(p, q));
    
    double c = Math.Sqrt(b * b * N * N - (M * M + N * N) * (b * b - a * M * M));
    
    double Q1 = (b * N + c) / (M * M + N * N);
    double Q2 = (b * N - c) / (M * M + N * N);
    
    double P1 = (b - Q1 * N) / M;
    double P2 = (b - Q2 * N) / M;
    
    double x_1 = P1 + x1;
    double y_1 = Q1 + y1;
    double x_2 = P2 + x1;
    double y_2 = Q2 + y1;
    
    double judge1 = (x_1 - x1) * (y2 - y1) - (y_1 - y1) * (x2 - x1);
    double judge2 = (x_2 - x1) * (y2 - y1) - (y_2 - y1) * (x2 - x1);
    double judge = (lon - lon1) * (lat2 - lat1) - (lat - lat1) * (lon2 - lon1);
    
    double x = 0;
    double y = 0;
    if (judge * judge1 < 0)
    {
        x = x_1;
        y = y_1;
    }
    else
    {
        x = x_2;
        y = y_2;
    }

    屏幕坐标转地理坐标:

    double lon_cos = Math.Cos(lat2 * Math.PI / 180);
    
    double m = (lon2 - lon1) * lon_cos;
    double n = (lat2 - lat1);
    
    double M = x2 - x1;
    double N = y2 - y1;
    double P = x - x1;
    double Q = y - y1;
    
    double a = (P * P + Q * Q) * (m * m + n * n) / (M * M + N * N);
    double b = (M * P + Q * N) * norm(m, n) * Math.Sqrt(a) / (norm(M, N) * norm(P, Q));
    
    double c = Math.Sqrt(b * b * n * n - (m * m + n * n) * (b * b - a * m * m));
    
    double q1 = (b * n + c) / (m * m + n * n);
    double q2 = (b * n - c) / (m * m + n * n);
    
    double p1 = (b - q1 * n) / m;
    double p2 = (b - q2 * n) / m;
    
    double lon_1 = p1 / lon_cos + lon1;
    double lat_1 = q1 + lat1;
    double lon_2 = p2 / lon_cos + lon1;
    double lat_2 = q2 + lat1;
    
    double judge1 = (lon_1 - lon1) * (lat2 - lat1) - (lat_1 - lat1) * (lon2 - lon1);
    double judge2 = (lon_2 - lon1) * (lat2 - lat1) - (lat_2 - lat1) * (lon2 - lon1);
    double judge = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1);
    
    double lon = 0;
    double lat = 0;
    if (judge * judge1 < 0)
    {
        lon = lon_1;
        lat = lat_1;
    }
    else
    {
        lon = lon_2;
        lat = lat_2;
    }

     

    展开全文
  • 经纬度转换xyxy转换经纬度,自动转换源码。
  • MATLAB—经纬度坐标转换为平面坐标

    万次阅读 多人点赞 2019-02-23 11:03:27
    XY平面被当作Mercator投影平面,Y轴和X轴原点分别设为0纬度和0经度。通过如下公式将地理坐标变换到Mercator投影平面。由于标准电子海图/航道图使用WGS84坐标系,本文使用WGS84参数进行变换。投影基准纬度为0度。 ...
    1. 原理示意图:

    Mercator投影变换示意图

    在这里插入图片描述
    2. 公式:

    XY平面被当作Mercator投影平面,Y轴和X轴原点分别设为0纬度和0经度。通过如下公式将地理坐标变换到Mercator投影平面。由于标准电子海图/航道图使用WGS84坐标系,本文使用WGS84参数进行变换。投影基准纬度为0度。
    在这里插入图片描述
    公式参数如下:
    X:水平直角坐标,单位为米(m);
    Y:纵向直角坐标,单位为米(m);
    B:纬度,单位为弧度(rad);
    L:经度,单位为弧度(rad);
    Bo:投影基准纬度,Bo =0,单位为弧度((rad);
    Lo:坐标原点的经度,Lo =0,单位为弧度(rad);
    a:地球椭球体长半轴,a=6378137.0000,单位为米(m);
    b:地球椭球体短半轴,b=6356752.3142,单位为米(m);
    e:第一偏心率;
    e’:第二偏心率。
    N-卯酉圈曲率半径,单位为米(m)。

    1. 代码

    单点经纬度坐标转换好用代码原创度高积分需要多
    C++语言实现

    批量数据经纬度坐标转换
    批量数据经纬度坐标转换

    展开全文
  • 世界经纬度转化为Unity中的世界/模型上的坐标,需要设置的有左上,右下的基准点配准,和模型中心,或场景中心点。Test为测试脚本,本版本为double 高精度类型经纬度转化。
  • 经纬度直接生成xy坐标,或xy坐标,生成经纬度
  • 这是她给我的原始数据,一堆经纬度点。首先我们先进行数据去重,当然这一步可以根据自己数据考虑是否需要。这里可以明显看出有若干重复数据,所以操作一下,避免后面无用工作。经过确认,这里的数据是度分秒,而不是...

    今天帮舍友作图,才体会到九边说的。学技术使人清醒,清醒的认识自己能力有限。少去网上怨天怨地,踏踏实实去提升实力。

    这是她给我的原始数据,一堆经纬度点。

    a902d8051db1fe509f06c786926a4667.png

    首先我们先进行数据去重,当然这一步可以根据自己数据考虑是否需要。这里可以明显看出有若干重复数据,所以操作一下,避免后面无用工作。

    经过确认,这里的数据是度分秒,而不是小数点。按照ArcMap的数据要求需要转化为小数显示。

    在Excel中就可以进行转换,利用以下公式:

    =LEFT(E2,3)+MID(E2,4,2)/60&MID(E2,6,1)

    =MID(E2,8,4)+MID(E2,12,2)/60&MID(E2,14,1)

    adccef13c8b842ae6446d40c22b93825.png

    这里的原数据虽然是以小数点显示,但是其实是北纬9度6分,西经79度5分,舍友当时给我的时候是这种格式,索性后面也就没改了。

    然后是数据格式进一步调整,由于涉及到东西经,和南北纬,所以需要加“-”进行区分,否则会默认为北纬东经,以下是数据处理结果。

    00ca061980b2b60b17274c14e3fccd0f.png

    保存为97-03版本的excel格式,即可进行导入工作。

    打开Arcmap,新建地图,然后设置地理坐标系为”WGS84“

    ae878429b986a648e40fa8821e442077.png

    添加表格数据,然后右键单击选择”xy数据“,即可进行显示。

    393a60b0bc13b541f4832e67a9f98bd9.png

    最后是添加世界大洲矢量图,进行制图,结果如下

    efbf4f8695a95019386c0311f6e2d8dc.png

    PS:世界大洲地图在每次打开Arcmap的时候就可以进行选择,如下图所示。如果需要更为细致的世界行政图,可以关注微信公众号“各一青",后台留言”世界行政矢量图“。

    展开全文
  • 基于PHP实现的大地坐标与经纬度坐标转换函数,可直接在apache服务下运行。运行方式为localhost:port/XY2BL-BL2XY?B=latitude@L=longitude。port为端口号,latitude为纬度值,longitude为经度值。大地坐标转经纬度...
  • GIS中经纬度坐标显示如图: 视图-数据框属性-常规-显示(米) 点击确定,然后坐标显示就转换xy坐标

    GIS中经纬度坐标显示如图:

    视图-数据框属性-常规-显示(米)

     点击确定,然后坐标显示就转换为xy坐标了

    注意,以上设置只是设置了当前文档的坐标系统并不是数据的坐标系

    举个例子:我将2160这条等高线按照上述操作导出到CAD中,选中这条等高线,查看顶点坐标,发现还是经纬度坐标!!!

     实际上我们需要的是导出后的等高线是xy坐标:

    要改变数据集或要素类的坐标系见下篇:

    https://blog.csdn.net/qq_40567160/article/details/119640361

    展开全文
  • 经纬度XY坐标-批量转换

    万次阅读 2021-03-12 15:44:30
    excel存储的经纬度坐标,如何批量转换XY平面坐标呢? 1.把度分秒转成度小数: 函数为:=MID(B2,1,3)+MID(B2,5,2)/60+MID(B2,8,5)/3600 转换失效的需要补成两位数,如图 2.将文件另存为97-2003版本的excel,后缀为...
  • 1、坐标转换:空间直角坐标,大地坐标,平面坐标转换。 2、经纬度转换:(地理坐标)经纬度与(大地坐标)xy相互转化,3度带与6度带坐标相互转化,度(十进制)与度分秒相互转化
  • 原文地址:http://www.cnblogs.com/ayanmw/archive/2012/08/19.htmlIPoint* projToGeo(IPoint* point/*需要更改坐标系的点*/,long fromProjType=3857 ,long toGeoType=4326) { long geoType = toGeoType;//4326....
  • CAD作图经纬度XY坐标转换小软件

    热门讨论 2011-08-22 21:34:16
    CAD作图经纬度XY坐标转换小软件,直接解压缩后双击应用程序即可。
  • 利用matlab将经纬度转换为XYZ坐标,用于相对位置参考和平面制图,精度高,使用方便,可直接在当前程序中调用,仅需配置参考位置,并输入需要转换经纬度,输出北向夹角和与参考位置之间的距离,采用三角公式计算X、...
  • 在excel中将经纬度坐标转换成十进制度的方法.doc
  • 经纬度XY转换小工具.rar (地理坐标经纬度与(大地坐标xy相互转化 3度带与6度带坐标相互转化 度(十进制)与度分秒相互转化 软件很小,但很实用
  • GPS经纬度换算成XY坐标

    万次阅读 2018-06-12 14:24:46
     /// GPS经纬度换算成x,y坐标 ///&lt;/summary&gt; ///&lt;param name="l"&gt;精度&lt;/param&gt; ///&lt;param name="B"&gt;纬度&lt;/param&gt;...
  • 关键:首先导入的Excel数据为经纬度坐标,所以仅设置空间坐标系统WGS1984(暂不设置投影坐标系)。然后用toolbox的project坐标转换,加上投影坐标系,空间坐标系转换。 1.如果Excel为度分秒用Excel公式转换成数值形式...
  • arcgis中经纬度和平面坐标之间的相互转换方法
  • JS经纬度坐标转换

    千次阅读 2019-09-29 16:13:40
    // a: 卫星椭球坐标投影到平面地图坐标系的投影因子。 var ee = 0.00669342162296594323; // ee: 椭球的偏心率。 var dLat = this.transformLat(lon - 105.0, lat - 35.0); var dLon = this.transformLon(lon - ...
  • 经纬度与大地坐标转换工具,多个参考系选择,投影面选择,操作简便。
  • <p style="text-align:center"><img alt="" src="https://img-ask.csdnimg.cn/upload/1623413180559.png" /></p> 现有A、B两点的xy坐标位置,...需要根据AB两点的xy坐标经纬度得出转换公式。</p>
  • 单点经纬度转换坐标

    2019-02-25 13:04:20
    MATLAB—经纬度坐标转换为平面坐标;Mercator投影变换。这个如果出现不合理转换请查看我的另一篇(正常是可以的)单点经纬度转换坐标,那个需要积分多一点(后台审核积分)。博文中含有这几个坐标转换的文档解释
  • 点名 北纬N 东经E pos001 39°02′30.1790″ 100°25′55.8772″ pos002 39°02′33.2243″ 100°26′00.2177″ pos003 39°02′34.1348″ 100°26′04.0061″ pos004 39°02′33.7946″ 100°26′09
  • 参考https://blog.csdn.net/niu_88/article/details/97690318,
  • ArcMap将经纬度坐标转换到平面坐标

    万次阅读 2014-08-07 17:36:05
    首先我们需要知道经纬度坐标系和平面坐标坐标xi

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,459
精华内容 583
关键字:

经纬度坐标转换xy坐标