高斯-克吕格投影中的3度分带与6度分带,转换经纬度坐标

我国采用6度分带和3度分带: 
1∶2.5万及1∶5万的地形图采用6度分带投影,即经差为6度;从零度子午线开始,自西向东每个经差6度为一投影带,全球共分60个带,用1,2,3,4,5,……60表示.即东经0~6度为第一带,其中央经线的经度为东经3度;东经6~12度为第二带,其中央经线的经度为9度。

1∶1万的地形图、大比例尺工程测量图采用3度分带;从东经1.5度的经线开始,每隔3度为一带,用1,2,3,……120表示,全球共划分120个投影带,即东经1.5~ 4.5度为第1带,其中央经线的经度为东经3度;东经4.5~7.5度为第2带,其中央经线的经度为东经6度。

当地中央经线经度的计算:

六度带中央经线经度的计算:
当地中央经线经度=6°×当地带号-3°,例如:地形图上的横坐标为20345,其所处的六度带的中央经线经度为:6°×20-3°=117°(适用于1∶2.5万和1∶5万地形图)。

三度带中央经线经度的计算:
中央经线经度=3°×当地带号(适用于1∶1万地形图)。

例如y:40532562.035 x:3244054.735;表示带号为40,对应带中央经线为120度,
该点真实坐标为(120.335194,29.313418).
也有给过来点数据不带有带号,则需要根据属性信息去判断坐标点位置,进而计算出带号。


高斯-克吕格投影中的3度分带与6度分带,转换经纬度坐标_第1张图片
image.png

上图中,没有带号,根据属性信息查到对应点位置为东阳市,其经度大约位于120.2,判断出带号。


浙江界于东经118°01'-123°10',北纬27°02'-31°11'之间
120对应为120/3=40带,包含120-1.5~120+1.5 ==>118.5-121.5。
相应的,39带中央经线为117,包含115.5-118.5;
41带中央经线为123,包含121.5-124.5.
39、40、41三个3度分带包含了浙江范围。


矢量数据在arcgis中的转换方法参考:arcgis坐标转换与投影变换
单独或批量坐标点转换工具:链接:https://pan.baidu.com/s/1JmiHBQTnZTMZWyv_hjwwUQ 密码:puuj
来源参考:http://www.pc6.com/softview/SoftView_104394.html


转换代码

package io.github.lxqjss;

public class testCoordinateTransform {
    public static void main(String[] args) {

        gsjs(3244054.735,40532562.035);
        System.out.println("end---");
    }
    public static void  gsjs(double X ,double Y){
        double x,y,L0 = 0,B,L;
        x = X;
        y = Y;
        double p=206264.80625;
        for (int i = 1; Y/i >=10; i = i * 10)//对Y坐标处理并求出中央子午线经度
        {
            y = Y - (int)(Y / i) * i-500000;
            L0 =120;//中央经线,请完善代码去计算,这里处理浙江东阳的数据,偷懒直接指定了
        }
        //按6°带克氏椭球反算
        double bt = x / 6367558.4969*p;
        double BT = x / 6367558.4969;
        double c3=Math.cos(BT)*Math.cos(BT);
        double c4=Math.sin(BT)*Math.cos(BT);
        double Bf=(bt+(50221746+(293622+(2350+22*c3)*c3)*c3)*c4*Math.pow(10,-10)*p)/p;
        double c5=Math.pow(Math.cos(Bf),2);
        double c6=Math.sin(Bf)*Math.cos(Bf);
        double Nf=6399698.902-(21562.267-(108.973-0.612*c5)*c5)*c5;
        double Z=y/(Nf*Math.cos(Bf));
        double b2 = (0.5 + 0.003369 * c5) * c6;
        double b3 = 0.333333 - (0.166667 - 0.001123 * c5) * c5;
        double b4 = 0.25 + (0.16161 + 0.00562 * c5) * c5;
        double b5=0.2-(0.1667-0.0088*c5)*c5;
        double z2=Math.pow(Z,2);
        B = (Bf*p - (1 - (b4 - 0.12 *z2) * z2) * z2 * b2 * p)/3600.0;
        L = L0+((1 - (b3 - b5 * z2) * z2) * Z * p)/3600.0;
        System.out.println("纬度:"+B+"    经度:"+L+"    中央子午线:"+L0);
    }
}

你可能感兴趣的:(高斯-克吕格投影中的3度分带与6度分带,转换经纬度坐标)