html中leaflet加载天地图和热力图
时间: 2024-01-15 15:12:40 浏览: 246
要在HTML中使用Leaflet加载天地图和热力图,需要先引入Leaflet库和天地图的API。可以在HTML文件中添加以下代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Leaflet with TianDiTu and Heatmap</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.7.1/dist/leaflet.css" />
<script src="https://cdn.jsdelivr.net/npm/leaflet@1.7.1/dist/leaflet.js"></script>
<script src="http://api.tianditu.gov.cn/api?v=4.0&tk=yourkey"></script>
<script src="https://cdn.jsdelivr.net/npm/leaflet-heatmap/leaflet-heatmap.js"></script>
<style>
#map {
height: 500px;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
// initialize the map
var map = L.map('map').setView([39.9, 116.4], 12);
// add TianDiTu base map
var tiandituUrl = 'http://{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=yourkey';
var tiandituAttribution = 'Data © <a href="http://www.tianditu.gov.cn">Tianditu</a>';
var tiandituLayer = L.tileLayer(tiandituUrl, {
attribution: tiandituAttribution,
subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
maxZoom: 18
});
tiandituLayer.addTo(map);
// add heatmap layer
var heatmapData = [
[39.9, 116.4, 0.5],
[39.9, 116.41, 0.2],
[39.91, 116.4, 0.8],
[39.91, 116.41, 0.3]
];
var heatmapLayer = L.heatLayer(heatmapData, {
radius: 20,
blur: 15,
maxZoom: 18
});
heatmapLayer.addTo(map);
</script>
</body>
</html>
```
其中,`yourkey`需要替换为你自己的天地图开发者密钥。`tiandituUrl`是天地图的矢量底图服务地址,`tiandituAttribution`是底图的版权信息。`tiandituLayer`是将底图添加到地图上。`heatmapData`是热力图的数据,`heatmapLayer`是将热力图添加到地图上。
在上述代码中,热力图数据是手动输入的,实际应用中可以通过AJAX请求获取数据并动态生成热力图。
阅读全文