首页 > 其他分享 >网站调取天地图开发全攻略:方法与步骤详解

网站调取天地图开发全攻略:方法与步骤详解

时间:2024-11-26 15:32:43浏览次数:12  
标签:map 创建 地图 全攻略 详解 Cesium new 图层 调取

地理信息系统(GIS)在网站开发中的应用日益广泛。天地图作为国内权威的地理信息服务平台,为开发者提供了丰富的地图数据和强大的功能接口。本文将详细介绍网站调取天地图进行开发的方法和步骤,帮助开发者快速上手,打造出具有地理信息展示功能的优质网站。

一、使用天地图 JavaScript API

1. 申请开发者账号和 Key

首先,访问天地图官网,注册成为开发者。在注册过程中,需要填写一些基本信息,如邮箱、用户名等。注册成功后,登录开发者控制台,创建一个新的应用。在创建应用时,需要填写应用名称、应用类型等信息,然后系统会为该应用生成一个唯一的 Key。这个 Key 非常重要,它将用于后续在代码中验证和授权你的地图调用请求,确保请求的合法性和安全性。

2. 引入 JavaScript API 库

在 HTML 页面中,使用<script>标签引入天地图 JavaScript API 库。例如:

<script src="http://lbs.tianditu.gov.cn/api/js4.0/tianditu.js"></script>

这一步骤使得我们可以在页面中使用天地图提供的 JavaScript 函数和对象来操作地图。

3. 创建地图容器

在 HTML 页面中添加一个<div>元素,作为地图的容器,并设置其宽度和高度等样式属性。例如:

<div id="map" style="width: 100%; height: 600px;"></div>

这个容器将用于显示地图内容,其大小和样式可以根据网站的整体布局和设计需求进行调整。

4. 初始化地图

使用 JavaScript 代码获取地图容器元素,并通过天地图 API 的T.Map类来创建和初始化地图对象,同时设置地图的中心点、缩放级别等参数。示例代码如下:

var map = new T.Map('map');
map.centerAndZoom(new T.LngLat(116.397428, 39.90923), 12);

这里通过指定地图容器的 ID 为map来创建地图对象,并将地图的中心点设置为经度 116.397428、纬度 39.90923,缩放级别设置为 12。开发者可以根据实际需求调整这些参数,以展示不同区域和缩放程度的地图。

5. 添加地图图层

根据项目需求,可以添加不同类型的天地图图层,如矢量底图、影像底图、地名注记等。以添加矢量底图为例,代码如下:

var vecLayer = new T.TileLayer('vec_w', {key: 'your_key'});
map.addLayer(vecLayer);

这里创建了一个矢量底图图层对象,并将其添加到地图中。需要注意的是,在创建图层对象时,要传入之前申请的 Key,以确保图层能够正常加载。

二、利用 Leaflet.js 调取天地图服务

1. 申请天地图 Key

同样在天地图官网申请对应类型的 Key,申请流程与使用天地图 JavaScript API 时类似。

2. 引入 Leaflet.js

在 HTML 页面中引入 Leaflet.js 的 CSS 和 JavaScript 文件。例如:

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css">
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>

Leaflet.js 是一个轻量级的开源地图库,通过引入其相关文件,我们可以利用它来加载和展示天地图。

3. 创建地图并添加天地图图层

使用L.map函数创建地图对象,并通过L.tileLayer函数添加天地图的影像底图或矢量底图等图层。示例代码如下:

var map = L.map('map', {
  center: [39.915, 116.404],
  zoom: 16,
  crs: L.CRS.TianDiTu_Mercator
});
L.tileLayer('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=your_key').addTo(map);

上述代码创建了一个以特定经纬度为中心、缩放级别为 16 的地图对象,并添加了天地图的影像底图图层。在L.tileLayer函数中,设置了天地图影像服务的 URL,并传入了申请的 Key,最后将图层添加到地图中。

三、使用 OpenLayers 调取天地图服务

1. 申请天地图 key

前往天地图官网申请 key,获取调用天地图服务的凭证。

2. 安装 OpenLayers

通过npm install ol命令在项目中安装 OpenLayers。

3. 引入相关模块

在页面中引入必要的 OpenLayers 模块,如import 'ol/ol.css'; import Map from 'ol/Map'; import View from 'ol/View';等。这些模块将为我们创建和操作地图提供基础功能。

4. 加载地图

mounted钩子函数中(如果是在 Vue 项目中),创建地图视图、底图图层和注记图层,并将其添加到地图中,同时设置比例尺等控件。示例代码如下:

mounted() {
  let view = new View({
    center: transform(fromLonLat(this.center), 'EPSG:3857', 'EPSG:4326'),
    projection: get('EPSG:4326'),
    zoom: 5
  });
  this.map = new Map({
    target: 'map',
    layers: (new TileLayer({source: new OSM()}))
  });
  let map_cva = new TileLayer({
    source: new XYZ({
      url: 'http://t3.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=your_key'
    })
  });
  let map_vec = new TileLayer({
    source: new XYZ({
      url: 'http://t4.tianditu.com/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=your_key'
    })
  });
  this.map.addLayer(map_vec);
  this.map.addLayer(map_cva);
  let ScaleLineControl = new ScaleLine({units: 'metric'});
  this.map.addControl(ScaleLineControl);
}

这段代码首先创建了地图视图,设置了地图的中心坐标、投影和缩放级别。然后创建了地图对象,并添加了一个基础的瓦片图层(这里以 OpenStreetMap 为例)。接着创建了天地图的矢量底图和注记图层,并添加到地图中,最后添加了比例尺控件,以方便用户查看地图比例。

四、使用 vue - cesium 开发三维地图(可选)

1. 创建 vue 项目并安装依赖

使用vue create命令创建一个 Vue 项目,并在项目目录下通过npm install cesium --savenpm install --save-dev vue-cli-plugin-cesium安装 Cesium 相关依赖。这一步骤为使用 vue - cesium 开发三维地图奠定基础。

2. 引入 Cesium 资源

main.js文件中引入 Cesium 的 CSS 和 JavaScript 文件,例如:

import 'cesium/Widgets/widgets.css';
import Cesium from 'cesium/Cesium';
Vue.prototype.Cesium = Cesium;

这样可以在 Vue 组件中方便地使用 Cesium 的功能。

3. 创建地图容器

在 Vue 组件的模板中添加一个<div>元素作为 Cesium 地图的容器,如:

<template>
  <div>
    <div style="width: 100%; height: 600px" id="cesiumContainer"></div>
  </div>
</template>

确定了三维地图在页面中的显示区域。

4. 初始化地图

在 Vue 组件的mounted钩子函数中,使用 Cesium 的Viewer类来创建和初始化三维地图对象,并进行相关配置。示例代码如下:

mounted() {
  Cesium.Ion.defaultAccessToken = "your_access_token";
  this.viewer = new Cesium.Viewer('cesiumContainer', {
    // 配置项
  });
  // 添加天地图影像图层
  var layer = new Cesium.WebMapTileServiceImageryProvider({
    url: "http://t0.tianditu.gov.cn/img_w/wmts?tk=your_key",
    subdomains: ('0', '1', '2', '3', '4', '5', '6', '7'),
    layer: "img",
    style: "default",
    tileMatrixSetID: "w",
    format: "tiles",
    maximumLevel: 18
  });
  this.viewer.imageryLayers.addImageryProvider(layer);
  // 添加天地图影像注记图层
  var layer1 = new Cesium.WebMapTileServiceImageryProvider({
    url: "http://t0.tianditu.gov.cn/cia_w/wmts?tk=your_key",
    subdomains: ('0', '1', '2', '3', '4', '5', '6', '7'),
    layer: "cia",
    style: "default",
    tileMatrixSetID: "w",
    format: "tiles",
    maximumLevel: 18
  });
  this.viewer.imageryLayers.addImageryProvider(layer1);
}

首先设置了 Cesium Ion 的访问令牌(如果需要使用相关服务),然后创建了Viewer对象,并添加了天地图的影像图层和影像注记图层,丰富了三维地图的显示内容。

五、总结

通过以上几种方法,开发者可以根据项目的具体需求和技术栈选择合适的方式来调取天地图进行网站开发。无论是二维地图还是三维地图,天地图都提供了丰富的功能和数据支持,能够为网站增添强大的地理信息展示能力,提升用户体验和网站的功能性。在开发过程中,要注意妥善保管申请的 Key,遵循天地图的使用规范和限制,以确保项目的顺利进行和合法合规运行。希望本文能够为广大开发者在网站调取天地图开发方面提供有益的参考和帮助,让更多精彩的地理信息网站得以诞生。

在实际开发中,开发者还可以进一步探索天地图的其他功能,如地理编码、路径规划等,将其集成到网站中,打造出更加完善的地理信息服务平台。

标签:map,创建,地图,全攻略,详解,Cesium,new,图层,调取
From: https://blog.csdn.net/Hanbo17c/article/details/144049735

相关文章

  • HTTP状态码详解及其解决方案404,403,500等
    HTTP状态码详解及其解决方案引言在现代互联网中,HTTP(HyperTextTransferProtocol,超文本传输协议)是最常用的数据传输协议之一。它定义了客户端(通常是浏览器)与服务器之间如何进行通信。HTTP状态码是服务器响应请求时返回的一个三位数字,用于描述请求的处理结果。这些状态码不仅......
  • SpringBoot整合QQ邮件发送详解(完整教程)
    进入QQ邮箱官网,然后登录,进去之后点击账号与安全按照一下步骤走会得到一个授权码1.导入依赖<!--mail--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId>......
  • 【论文复现】多模态COGMEN详解
    ......
  • Java面试要点42 - Java IO:字节流与字符流详解
    文章目录一、引言二、IO流的基本概念三、字节流体系四、字符流体系五、字节流与字符流的转换六、IO操作的最佳实践6.1资源管理和异常处理6.2性能优化策略6.3字符编码处理6.4现代文件操作API的使用6.5安全性考虑总结一、引言在Java编程中,IO(输入/输出)操作是一......
  • 详解 指针函数,函数指针,函数指针函数
    在一些STL源码或者linux源码经常能看到这些东西,确实挺让人头疼指针函数返回值为指针的函数monney*get_monney(people*p)//传people指针进去return的是这个人的财产指针{returnp->monney_;}函数指针函数指针是一个指向函数的指针,允许通过它调用函数。#include<......
  • pikachu平台XXE漏洞通关教程详解
    声明!学习视频来自B站up主泷羽sec有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!工具在网盘,自取通过网盘分享的文件:phpstudy链......
  • 微信小程序导航方式详解:声明式导航与编程式导航
    微信小程序导航方式详解:声明式导航与编程式导航引言在微信小程序的开发中,页面导航是实现用户交互的重要组成部分。小程序提供了两种主要的导航方式:声明式导航和编程式导航。了解这两种导航方式的特点、使用场景及其优缺点,对于提升小程序的用户体验和开发效率至关重要。本......
  • 微信小程序页面配置详解:从入门到精通
    微信小程序页面配置详解:从入门到精通引言随着移动互联网的飞速发展,微信小程序作为一种新兴的应用形式,因其便捷性和丰富的功能而受到广泛欢迎。在小程序的开发过程中,页面配置是至关重要的一环。本文将深入探讨微信小程序的页面配置,帮助开发者从基础到高级逐步掌握这一重要......
  • 【MySQL】红黑树详解
    红黑树详解节点颜色关键规则红黑树的主要操作插入操作删除操作旋转操作红黑树的优势红黑树是一种自平衡的二叉查找树,它具有以下特性:节点颜色每个节点要么是红色,要么是黑色根节点必须是黑色叶子节点(NIL)都是黑色关键规则红色节点的子节点必须是黑色(不能有连续的......
  • settings.xml详解
    settings.xml详解作用​ 用来设置Maven参数的配置文件,在Maven中提供了一个settings.xml文件来定义Maven的全局配置信息。我们通过这个文件来定义本地仓库、远程仓库和联网使用的代理信息等配置。文件位置全局配置:Maven的安装目录的conf子目录下面(${M2_HOME}/conf/settings.x......