文章目录

  • 概要
  • 1.如何获取地图API
  • 2.如何使用天地图API
  • 2.1 注意请求示例中的代码

概要

本篇文章主要是想将我在学习webGIS过程只能遇到的一些问题分享给需要的朋友,喜欢的可以点赞给点鼓励,后续会继续更新相关内容

要讲的内容主要是如何获取地图api,并在项目中调用

1.如何获取地图API

在网上许多开源的地图api,这里我想介绍的是国家地理信息公共服务平台,

直接搜索天地图官网就可以知道

进去之后选择称为开发者,然后注册账号并登录

成为开发者之后就可以查看地图地图api了

可以看到矢量图,影像图,注记图等2维地图,还可以看到3D地图api,所以一般就可以满足我们的日常使用了

2.如何使用天地图API

可以通过天地图官方提供的方法使用天地图,或者通过OpenLayers、Leaflet库在项目中使用,不论是哪种方式,都需要加载地图地址,这里主要讲解一下关于天地图API如何使用。

通过服务地址可以看出来,需要申请key配合服务使用,进入控制台创建新的应用,选择浏览器端就可以了

准备工作做好之后就开始调用api地址

这里要注意:直接使用地图服务列表里面的服务地址是不行的,翻到页面最下面,看官方提供的请求示例

我们一般直接使用第二步地图瓦片获取的代码最为API地址

这里有几个注意点要强调一下:

2.1 注意请求示例中的代码

第一点:我们可以发现地图服务列表,即下面这个表中服务地址的不同点就在于我框选出来的部分,他们代表了不同的地图,就比如矢量底图中的vec_c 和vec_w两种名字代表了两种投影坐标,然后我们看官方给的请求示例地址,即上面的图中我框选的内容img_w代表的是影像底图球面墨卡托投影,所以后面的一串代码中的参数要和img_w对应,LAYER=img,TILEMATRIXSE=w。

第二点:我用圆圈框选的三个坐标轴z  x  y顺序写错了,我感觉应该是官方的错误,导致加载出来的影像坐标轴错误,查阅其他资料发现正确的顺序应该是z  y  x,这里只需要把x 和 y两个字母的顺序换一下就行了

第三点:就是要将密钥换成你控制台申请的key值

我这里是以OpenLayers为例,结合vue2加载天地图影像,安装OpenLayers包我就不讲了,需要的可以查看我其他的文章,直接上代码

import Map from 'ol/Map.js'
import View from 'ol/View.js'
import TileLayer from 'ol/layer/Tile.js'
import XYZ from 'ol/source/XYZ'
import 'ol/ol.css'
import data from '../../public/district.json'
// import loadGeoJson from './loadgeojson'function olmap() {// 初始化天地图影像const skymap = new TileLayer({title: '天地图影像',source: new XYZ({// url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}.jpg', //影像服务地址-ol.XYZ,// 影像地图 img_w代表球面墨卡托投影  后面对应LAYER=img    TILEMATRIXSET=w  另外代码中间的参数zxy顺序错了,应改成z y xurl: 'http://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=95df243f8b72993f9e07a38e30be979c', //影像服务地址-ol.XYZ,// 影像地图 img_c代表   经纬度投影  后面对应LAYER=img  TILEMATRIXSET=c  另外代码中间的参数zxy顺序错了,应改成z y x// 经纬度投影和给定坐标系不同,所以偏移较大// url: 'http://t0.tianditu.gov.cn/img_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=95df243f8b72993f9e07a38e30be979c',}),})// 加载注记图层const zhuji = new TileLayer({title: '注记图层',source: new XYZ({// url: 'http://t4.tianditu.com/DataServer?T=cva_w&tk=b9031f80391e6b65bd1dd80dcde1b097&x={x}&y={y}&l={z}', //标注服务地址-ol.XYZ,//影像注记url: 'http://t0.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=95df243f8b72993f9e07a38e30be979c',}),})// XYZ瓦片图服务(天地图)const map = new Map({view: new View({projection: 'EPSG:4326', //坐标系,即地球坐标系——WGS84:常见于 GPS 设备,Google 地图等国际标准的坐标体系。//中心点// center: { longitude: 94.06865489300723, latitude: 29.620207697126617 },center: [94.06865489300723, 29.620207697126617],//缩放比例zoom: 7.7,//调整像素比例为当前浏览器的默认像素比pixelRatio: window.devicePixelRatio,//ol.view缩放比限定:[0,18]view_maxZoom: 18,view_minZoom: 0,}),layers: [skymap, zhuji],target: 'map',})// 加载geoJson数据// loadGeoJson(map, data)
}
export default olmap

我们拿代码来看一下:

url: 'http://t0.tianditu.gov.cn/img_w/wmts?
SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0
&LAYER=img&STYLE=default&TILEMATRIXSET=w
&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}
&TILECOL={x}&tk=95df243f8b72993f9e07a38e30be979c',

影像地图 img_w代表球面墨卡托投影  后面对应LAYER=img    TILEMATRIXSET=w  另外代码中间的参数zxy顺序错了应改成z y x就可以了

当我们了解代码每一部分对应的是什么之后就可以通过需要来更改代码,下面将球面墨卡托投影影像地图 更换为经纬度投影影像地图,复制代码

影像地图 img_c代表 经纬度投影  后面对应LAYER=img  TILEMATRIXSET=c

通过更改参数就可以实现加载不同底图的效果

 url: 'http://t0.tianditu.gov.cn/img_c/wmts
?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0
&LAYER=img&STYLE=default&TILEMATRIXSET=c
&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}
&TILECOL={x}&tk=95df243f8b72993f9e07a38e30be979c'

获取天地图API并调用不同的地图API接口相关推荐

  1. 微信小程序获取用户位置坐标,调用腾讯地图api,转换成地区

    需求:首页获取用户位置坐标,转换成功实际省市区,寄存在缓存中: 项目开发使用的是美团的mpvue,谁用谁知道(坑有不少但对于习惯vue开发的,也挺友好!) 小程序文档先上为敬 腾讯地图注册获取key, ...

  2. html调用腾讯地图定位当前位置,vue web项目中调用腾讯地图API获取当前位置的经纬度...

    vue web项目中调用腾讯地图API获取当前位置的经纬度 vue web项目中调用腾讯地图API获取当前位置的经纬度 在main.js 中添加一下代码 import axios from 'axio ...

  3. 调用腾讯地图API、高德地图API 获取当前地理位置、经纬度

    调用腾讯地图API.高德地图API 获取当前地理位置.经纬度 web开发中,很多情况下都会需要获取当前位置的经纬度,在网上找了几个不同的地图,最终找到兼容比较好的腾讯地图API 1.调用腾讯地图API ...

  4. 微信小程序调用腾讯地图API进行驾车路线规划

    微信小程序调用腾讯地图API进行驾车路线规划 申请key 下载sdk 实现代码 遇到的问题 申请key 微信小程序的地图api是非常有限的,所以部分功能实现需要调用地图api.使用腾讯地图api过程如 ...

  5. 如何在微信小程序中调用腾讯地图api

    微信小程序的地图api是非常有限的,如果要搜索地图上的位置,比如附近的医院.学校等,就需要使用地图api,使用腾讯地图api的过程如下: 一.开发者申请腾讯地图 进入官网http://lbs.qq.c ...

  6. python获取某地铁站经纬度_python通过百度地图API获取某地址的经纬度详解

    前言 这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的,本文将给大家详细的介绍关于python通过百度地图A ...

  7. 安卓开发——在应用中简单调用Android百度地图API SDK

    目录 需求展示 效果展示: 申请百度地图API密钥 配置ANDROID STUDIO 编写项目代码 运行项目 需求展示 利用百度地图API定位到当前所在位置,并显示所在的经纬度和地址信息. 效果展示: ...

  8. Angular 调用导入百度地图API接口

    Angular 调用百度地图API接口 参考原文:https://blog.csdn.net/yuyinghua0302/article/details/80624274 下面简单介绍一下如何在Ang ...

  9. 超全开放 API 免费调用,这款 API 管理工具太香了!

    01 此前时不时会有一些研发小伙伴和我诉苦,说很多企业由于人力财力限制或者需求不强,会直接购买使用第三方的开放API,这样一来, 一则由于开放项目不是量身定制的,寻找自己合适的接口也要搜索调研蛮多时间 ...

最新文章

  1. uniapp中qrcode生成二维码后传的参数不见了_阿虚教你制作动态二维码,超详细教程!
  2. p8工程师告诉你软件测试的三大误区,你误了几个?
  3. 安装截图软件shutter
  4. 如何动态添加菜单/菜单项、子菜单、右键菜单
  5. java solr 实现_Java实现全文检索-Solr后台管理
  6. 集群搭建SSH的作用及这些命令的含义
  7. 产品设计中的点线面法则
  8. 成为大厂AI算法工程师,“NLP/CV”都是你必须过的坎!
  9. boc android app,BOC
  10. python的缩进意义_python缩进错误的原因是什么
  11. map分组后取前10个_hive中分组取前N个值的实现
  12. python Pipe
  13. 【logstash】logstash monitor
  14. IntelliJ IDEA 2019.3 正式发布,给我们带来哪些新特性?| CSDN 博文精选
  15. js ajax 同步 执行完js之后才执行插入html
  16. Tensorflow2.0学习-加载和预处理数据 (七)
  17. RapidXML问题
  18. js实现oss批量下载文件_前端实现批量打包下载文件
  19. 数据分析专题报告范文6篇_【2018最新】数据分析报告范文-优秀word范文 (5页)
  20. 基于FPGA 的TF卡 UHS-I 方式存储

热门文章

  1. 全球与中国新生儿重症监护行业调查与未来发展趋势研究报告
  2. 【Steam账户登录提示账户或密码错误,查找邮箱与手机号提示没有关联账户,Steam被盗找回!】
  3. 8、全国世界城市列表API接口,免费好用
  4. 面向多领域交通监测业务快速开发部署的交通综合运行协调指挥系统(TOCC)关键技术研究与实践...
  5. “机房环境监控系统”机房安全最重要的一环!
  6. [detectron2 ] Mask R-CNN代码笔记
  7. 【信号】GPS扩频原理
  8. 地质钻探材料PHP,地质钻探个人实习报告总结2018
  9. coreldraw x7对齐快捷键_CorelDraw X7中文版快捷键大全
  10. 关于数据质量“成长的烦恼”的五点建议