GIS开发:自定义坐标系的地图

简介: GIS开发:自定义坐标系的地图

自定义坐标系的地图,是能够根据坐标系的参数,加载地图的底图,坐标系不仅仅限制于wgs84(EPSG:4326)、webmercator(EPSG:3857),这种常见的坐标系。
目前,找到开源的使用比较好的是openlayers和maptalks,借助于proj4.js的开源库,实现自定义地图的坐标系,加载地图切片。
openlayers的示例网址:
https://openlayers.org/en/latest/examples/reprojection-by-code.html
自定义坐标系,将地图的坐标系设置成此坐标系

proj4.defs('EPSG:XXXX', 'proj4字符串');

ol.proj.proj4.register(proj4)var map = new ol.Map({
   
      layers: layers,
      target: 'map',
      view: new ol.View({
   
        center: center,
        projection: 'EPSG:XXXX'
      })
    });

maptalks的示例网站:
https://maptalks.org/examples/cn/tilelayer-projection/proj4js/#tilelayer-projection_proj4js
同样也是进行坐标系的定义

// EPSG:3857's proj definition
      var proj3857 = '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext  +no_defs';
      var proj4 = proj4('WGS84', proj3857);

      // define a custom projection object
      var projection = {
   
        code : 'proj4-merc',  // code of the projection

        project : function (c) {
    // from wgs84 to EPSG3857
          var pc = proj4.forward(c.toArray());
          return new maptalks.Coordinate(pc);
        },

        unproject : function (pc) {
    // from EPSG3857 to wgs84
          var c = proj4.inverse(pc.toArray());
          return new maptalks.Coordinate(c);
        }
};

相对来说,maptalks能转换俯仰角,进行三维形式的查看,这个和目前二维地图中百度、高德的效果相近。
mapbox-gl默认就支持webmercator的坐标系,开源上有改写了国内的cgcs2000的坐标系支持,目前还没能实现自定义坐标系的效果。
leaflet中也实现了一个simple坐标系的api,对于平面坐标系的效果,也能够直接实现。
https://leafletjs.com/

相关文章
|
存储 Java 定位技术
gis利器之Gdal(二)shp数据读取
本文首先简单介绍了空间数据shp数据的基本知识,其常见的文件组成形式。使用qgis软件对数据进行常规预览,最后重点介绍了使用gdal对矢量信息进行读取,​包括空间信息和属性信息
1563 0
gis利器之Gdal(二)shp数据读取
|
JavaScript 定位技术
echars 3D地图为区域自定义颜色
echars 3D地图为区域自定义颜色
echars 3D地图为区域自定义颜色
|
数据处理 Python
|
12月前
|
JavaScript 前端开发 定位技术
maptalks使用高德的瓦片如何进行配置?
maptalks使用高德的瓦片如何进行配置?
771 12
|
11月前
|
Java 数据库连接 Maven
springBoot:项目建立&配置修改&yaml的使用&resource 文件夹(二)
本文档介绍了如何创建一个基于Maven的项目,并配置阿里云仓库、数据库连接、端口号、自定义启动横幅及多环境配置等。同时,详细说明了如何使用YAML格式进行配置,以及如何处理静态资源和模板文件。文档还涵盖了Spring Boot项目的`application.properties`和`application.yaml`文件的配置方法,包括设置数据库驱动、URL、用户名、密码等关键信息,以及如何通过配置文件管理不同环境下的应用设置。
887 1
|
JavaScript API 索引
js中的reduce()方法 讲解 和实现
`reduce()` 方法对数组元素依次应用一个回调函数,将结果累计并最终返回单一值。语法为 `reduce(callback(accumulator, currentValue, currentIndex, array), initialValue)`。参数包括累计器(初次为初始值或首元素)、当前元素值、索引及数组自身。此方法需返回值供下一轮迭代使用。常见应用场景包括计算数组总和与平均值、统计元素频率、过滤与转换数组内容及去除重复项等。例如,可通过 `reduce()` 快速计算 `[1, 2, 3, 4, 5]` 的总和或对对象属性值求和。此外,还可自定义实现 `reduce()` 方法
3373 1
|
关系型数据库 MySQL Nacos
使用 Docker 部署 Nacos 并配置 MySQL 数据源
使用 Docker 部署 Nacos 并配置 MySQL 数据源
3492 0
|
JavaScript
基于Vue2超简单实现DIY定制的步骤条
这篇文章介绍了如何在Vue 2中实现一个自定义设计的步骤条组件,包括子组件的设计和在父页面中的使用示例。
340 1
基于Vue2超简单实现DIY定制的步骤条
|
安全 C#
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
385 1
|
存储 Java API
SpringBoot + MinIO 实现文件切片极速上传技术
【8月更文挑战第19天】在现代互联网应用中,文件上传是一个常见且重要的功能。然而,随着文件体积的增大,传统的文件上传方式往往面临效率低下、耗时过长等问题。为了提升大文件上传的速度和效率,我们可以采用文件切片上传技术,并结合SpringBoot和MinIO来实现这一功能。
506 0