地图服务测试

This commit is contained in:
sunxs 2025-03-21 20:03:18 +08:00
parent 31c5d4ee9e
commit 82fb5033d5
2 changed files with 189 additions and 0 deletions

View File

@ -0,0 +1,115 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>地图服务加载样例代码(含打点功能)</title>
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/>
<!-- 一张图定制版mapbox api -->
<script src="https://shaanxi.tianditu.gov.cn/vectormap/YouMapServer/JavaScriptLib/mapbox-gl-cgcs2000.js"></script>
<link
href="https://shaanxi.tianditu.gov.cn/vectormap/YouMapServer/JavaScriptLib/mapbox-gl-cgcs2000.css"
rel="stylesheet"
/>
<style>
body {
margin: 0;
padding: 0;
}
#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
/* 自定义标记点样式(可选) */
.custom-marker {
width: 30px;
height: 30px;
border-radius: 50%;
background: #ff4444;
border: 2px solid white;
box-shadow: 0 2px 6px rgba(0,0,0,0.3);
display: flex;
align-items: center;
justify-content: center;
color: white;
font-weight: bold;
}
</style>
</head>
<body>
<style>
.boxdraw {
background: rgba(56, 135, 190, 0.1);
border: 2px solid #3887be;
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
}
</style>
<div id="map"></div>
<script>
// mapbox api token
mapboxgl.accessToken =
"pk.eyJ1Ijoib25lZ2lzZXIiLCJhIjoiY2plZHptcnVuMW5tazMzcWVteHM2aGFsZiJ9.ERWP7zZ-N6fmNl3cRocJ1g";
// 初始化地图对象
var map = new mapboxgl.Map({
container: "map",
style: "http://1.85.55.225:8085/YouMapServer/rest/service/sxwwCGCS2000/VectorTileServer/styles/blue_yj-225.json",
center: { lng: 109, lat: 35.655 }, // 陕西中心坐标
zoom: 6,
pitch: 5,
minZoom: 5,
maxZoom: 17,
});
// 加载指北针、比例尺
map.addControl(new mapboxgl.NavigationControl());
map.addControl(
new mapboxgl.ScaleControl({ maxWidth: 80, unit: "metric" }),
"bottom-left"
);
// -------------------------- 打点核心逻辑 --------------------------
// 地图加载完成后执行(确保地图容器已初始化)
map.on('load', function() {
// 1. 基础打点:默认图标 + 弹窗(以西安为例)
const xiAnMarker = new mapboxgl.Marker()
.setLngLat([108.940174, 34.263161]) // 西安坐标(经纬度)
.setPopup(new mapboxgl.Popup().setHTML('<h3>西安市</h3><p>陕西省省会</p>')) // 点击弹窗
.addTo(map); // 挂载到地图
// 2. 自定义样式打点自定义DOM样式以宝鸡为例
const baoJiMarker = new mapboxgl.Marker(document.createElement('div'))
.setElementClass('custom-marker') // 绑定自定义CSS类
.setElementContent('宝') // 标记点内文字
.setLngLat([107.273414, 34.361761]) // 宝鸡坐标
.setPopup(new mapboxgl.Popup().setHTML('<h3>宝鸡市</h3><p>炎帝故里</p>'))
.addTo(map);
// 3. 批量打点:循环添加多个城市(适合多坐标场景)
const cityPoints = [
{ name: '咸阳市', lng: 108.707303, lat: 34.348743, desc: '秦都' },
{ name: '延安市', lng: 109.492292, lat: 36.600692, desc: '革命圣地' },
{ name: '汉中市', lng: 107.037442, lat: 33.075774, desc: '天府之国' }
];
cityPoints.forEach(point => {
new mapboxgl.Marker()
.setLngLat([point.lng, point.lat])
.setPopup(new mapboxgl.Popup().setHTML(`<h3>${point.name}</h3><p>${point.desc}</p>`))
.addTo(map);
});
});
// ------------------------------------------------------------------
</script>
</body>
</html>

View File

@ -0,0 +1,74 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>地图服务加载样例代码</title>
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/>
<!-- 一张图定制版mapbox api -->
<script src="https://shaanxi.tianditu.gov.cn/vectormap/YouMapServer/JavaScriptLib/mapbox-gl-cgcs2000.js"></script>
<link
href="https://shaanxi.tianditu.gov.cn/vectormap/YouMapServer/JavaScriptLib/mapbox-gl-cgcs2000.css"
rel="stylesheet"
/>
<style>
body {
margin: 0;
padding: 0;
}
#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
</style>
</head>
<body>
<style>
.boxdraw {
background: rgba(56, 135, 190, 0.1);
border: 2px solid #3887be;
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
}
</style>
<div id="map"></div>
<script>
// mapbox api 申请的token
mapboxgl.accessToken =
"pk.eyJ1Ijoib25lZ2lzZXIiLCJhIjoiY2plZHptcnVuMW5tazMzcWVteHM2aGFsZiJ9.ERWP7zZ-N6fmNl3cRocJ1g";
// 初始化地图对象
var map = new mapboxgl.Map({
container: "map",
// 以互联网版服务为例另外也提供了10段和59段的服务地址
style: "http://1.85.55.225:8085/YouMapServer/rest/service/sxwwCGCS2000/VectorTileServer/styles/blue_yj-225.json",
center: { lng: 109, lat: 35.655 },
zoom: 6,
pitch: 5,
minZoom: 5,
maxZoom: 17,
});
// 加载指北针图表
map.addControl(new mapboxgl.NavigationControl());
// 加载地图比例尺
map.addControl(
new mapboxgl.ScaleControl({
maxWidth: 80,
unit: "metric",
}),
"bottom-left"
);
</script>
</body>
</html>