No code "EPSG:4490" from authority "EPSG" found for object of type "EngineeringCRS".解决方案
最新推荐文章于 2022-09-26 11:06:47 发布
最新推荐文章于 2022-09-26 11:06:47 发布

学习geotools的过程遇到问题一

No code “EPSG:4490” from authority “EPSG” found for object of type “EngineeringCRS”
在使用geotools的过程中,使用CRS或者指定SRID报以下错误时。

org.opengis.referencing.NoSuchAuthorityCodeException: No code "EPSG:4490" from authority "EPSG" found for object of type "EngineeringCRS".
	at org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.noSuchAuthorityException(CartesianAuthorityFactory.java:137)
	at org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.createEngineeringCRS(CartesianAuthorityFactory.java:129)
	at org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.createCoordinateReferenceSystem(CartesianAuthorityFactory.java:120)
	at org.geotools.referencing.factory.AuthorityFactoryAdapter.createCoordinateReferenceSystem(AuthorityFactoryAdapter.java:780)
	at org.geotools.referencing.factory.FallbackAuthorityFactory.createCoordinateReferenceSystem(FallbackAuthorityFactory.java:625)
	at org.geotools.referencing.factory.AuthorityFactoryAdapter.createCoordinateReferenceSystem(AuthorityFactoryAdapter.java:780)
	at org.geotools.referencing.factory.ThreadedAuthorityFactory.createCoordinateReferenceSystem(ThreadedAuthorityFactory.java:636)
	at org.geotools.referencing.DefaultAuthorityFactory.createCoordinateReferenceSystem(DefaultAuthorityFactory.java:177)
	at org.geotools.referencing.CRS.decode(CRS.java:517)
	at com.wemap.common.utils.geotools.pg.Geotools.zjggInsertIntoPGFromSHP(Geotools.java:717)
	at com.wemap.common.utils.geotools.pg.Geotools.main(Geotools.java:786)

表示项目缺少gt-epsg-hsql包,可在pom文件中引入此包即可。

 		<dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-epsg-hsql</artifactId>
            <version>${geotools.version}</version>
        </dependency>

但是如果项目没有运用maven进行构建,只是单纯外部引入包,这时需要引入的包有:
hsqldb-2.5.0.jar , gt-epsg-hsql-11.1.jar ,只有这两个包都存在,才能够在数据库中找到我们需要的坐标系代码。
包

该软件包提供了用于访问的数据的API。 epsg.schema模块提供了一个对象模型,该对象模型紧密映射到GML(可作为在线注册表的导出内容使用)。 请注意,这个包不进行重投影提供任何功能或坐标变换:其唯一目的是充当API在EPSG注册表访问可用的数据。 对象模型建立在基础上,以从SQL数据库中提供对象模型的持久性和查询。 epsg.Registry类表示在线EPSG注册中心的本地数据库副本。 如果未使用engine构造函数参数传入其他数据库引擎,则默认值为内存中的sqlite数据库。 例如 >>> from epsg import Registry >>> registry = Registry() # use in-memory database 从的在线EPSG注册中心检索数据时,可能需要一段时间。 epsg.Registry实现了Pyt <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http openlayers代码中只有半径,没有长半轴、短半轴 。猜测openlayers对椭球体简化成了球体 半径(RADIUS):6378137 HALF_SIZE 展开后宽度的一半,及圆周长的一半。RADIUS*MATH.PI 范围设置,(0,0)点设置在正方形的中心点 [-HALF_SIZE, -HALF_SIZE, HALF_SIZE, HALF_SIZE] 对应的地球范围(WORLD_EXTENT):[-180, -85, 180, 85] export const MAX_SAFE_Y = RADIU public static void readShapefile() throws IOException{ String shapefile = "E:\\supermap_data\\lalala\\my.shp"; File file = new File(shapefile); // 申明一个存储空间 China Geodetic Coordinate System 2000 (CGCS2000)经纬度坐标系 Unit:degree (supplier to define representation) Geodetic CRS:China Geodetic Coordinate System 2000 Datum:China 2000 Ellipsoid:... http://blog.csdn.net/cloverwindy/article/details/8663968 AUTHORITY["EPSG", "9122"]指的是EPSG数据集中UNIT为degree的ID是9122;AUTHORITY["EPSG", "4326"]指的是地理坐标系WGS 84的ID是4326;AU... EPSG 4326,4490 等坐标代号EPSPWGS84 Web Mercator EPSP的英文全称是European Petroleum Survey Group,中文名称为欧洲石油调查组织。这个组织成立于1986年,2005年并入IOGP(International Association of Oil & Gas Producers),中文名称为国际油气生产者协会。 每一个坐标系都对应一个数字代号,这个数字代号就叫WKID 空间参考标识符 (SRID) 是与特定坐标系、容差和分辨