eclipse中使用proj4j库进行坐标转换

因为项目的关系,需要后台坐标转换,就想到了proj4库。下面是我在eclipse中使用的记录

导入jar
在pom.xml中加入

		<!-- https://mvnrepository.com/artifact/org.locationtech.proj4j/proj4j -->
		<dependency>
		    <groupId>org.locationtech.proj4j</groupId>
		    <artifactId>proj4j</artifactId>
		    <version>1.1.1</version>
		</dependency>

开始使用

创建坐标投影对象

CRSFactory crsFactory = new CRSFactory();

String SourceCRS = "wgs84";
String SourceCRS_params="+proj=longlat +datum=WGS84 +no_defs ";
CoordinateReferenceSystem source = crsFactory.createFromParameters(SourceCRS, SourceCRS_params);

投影坐标的参数可以根据EPSG在http://epsg.io/中查找,这里不做解释

如果自定义地图的参数有变动,请看Proj.4坐标系统创建参数

坐标转换

import org.locationtech.proj4j.CRSFactory;
import org.locationtech.proj4j.CoordinateReferenceSystem;
import org.locationtech.proj4j.CoordinateTransform;
import org.locationtech.proj4j.CoordinateTransformFactory;
import org.locationtech.proj4j.ProjCoordinate;

public ProjCoordinate WGS84To2436(){
		CRSFactory crsFactory = new CRSFactory();
		//源坐标系统
        String SourceCRS = "wgs84";
		String SourceCRS_params="+proj=longlat +datum=WGS84 +no_defs ";
		CoordinateReferenceSystem source = crsFactory.createFromParameters(SourceCRS, SourceCRS_params);

        //目标坐标系统
        String TargetCRS = "2436";
        String TargetCRS_params="+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m +no_defs ";
		CoordinateReferenceSystem  target = crsFactory.createFromParameters(TargetCRS, get_CRS_paramStr(TargetCRS));
        
        //定义转换类WGS84转2436
        CoordinateTransformFactory ctf = new CoordinateTransformFactory();
		CoordinateTransform transform = ctf.createTransform(source, target);

	//WGS84坐标系转换 
	ProjCoordinate projCoordinate = new ProjCoordinate(x, y);
	transform.transform(projCoordinate, projCoordinate);
	//projCoordinate.x 和 projCoordinate.y 就是转换结果
	return projCoordinate;
}

到此转换完成

参考文章:
android 使用proj4j库(Java版本)
Proj.4坐标系统创建参数

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值