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对矢量信息进行读取,​包括空间信息和属性信息
1865 0
gis利器之Gdal(二)shp数据读取
|
Arthas Java 测试技术
超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下
超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下
3731 0
超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下
|
Shell 文件存储 Android开发
智能电视安装VLC配合frpc实现播放远程群晖NAS上的电影
智能电视安装VLC配合frpc实现播放远程群晖NAS上的电影
3284 0
|
JavaScript 定位技术
echars 3D地图为区域自定义颜色
echars 3D地图为区域自定义颜色
echars 3D地图为区域自定义颜色
|
数据处理 Python
|
11月前
|
传感器 机器学习/深度学习 人工智能
AI种田有多猛?看它如何“统治”自动化农业!
AI种田有多猛?看它如何“统治”自动化农业!
413 8
|
JavaScript
在Vue中获取DOM元素的实际宽高
【10月更文挑战第2天】
1667 77
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
1290 1
Maven——创建 Spring Boot项目
|
JavaScript
基于Vue2超简单实现DIY定制的步骤条
这篇文章介绍了如何在Vue 2中实现一个自定义设计的步骤条组件,包括子组件的设计和在父页面中的使用示例。
553 1
基于Vue2超简单实现DIY定制的步骤条
|
安全 C#
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
751 1