二维地图 Leaflet知识
第一步:插入渲染元素
1 <div id="cesiumContainer"></div>
第二步:添加样式
1 #cesiumContainer { 2 position: absolute; 3 width: 100%; 4 height: 100%; 5 z-index: 10; 6 }
第三步:创建地图
1 let map = L.map('cesiumContainer',{ 2 center: [center_lat, center_lng], 3 crs: L.CRS.EPSG4326, 4 zoom: 8, 5 zoomControl: false, // 隐藏缩放按钮 6 });
第四步:添加底图
1 let img_url = 'http://t{s}.tianditu.gov.cn/img_c/wmts?layer=img&style=default&tilematrixset=c&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y}&tk=87c942f4f4a2b17270f52f797df4537c'; 2 let cia_url = 'http://t{s}.tianditu.gov.cn/cia_c/wmts?&layer=cia&style=default&tilematrixset=c&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y}&tk=87c942f4f4a2b17270f52f797df4537c'; 3 this.tileLayer = L.tileLayer(img_url, { 4 subdomains: [0, 1, 2, 3, 4, 5, 6, 7], // 天地图有7个服务节点,代码中不固定使用哪个节点的服务,而是随机决定从哪个节点请求服务,避免指定节点因故障等原因停止服务的风险 5 minZoom: 2, 6 maxZoom: 17, 7 zoomOffset: 1 8 }).addTo(map); // 影像图 9 let labelTileLayer = L.tileLayer(cia_url, { 10 subdomains: [0, 1, 2, 3, 4, 5, 6, 7], // 天地图有7个服务节点,代码中不固定使用哪个节点的服务,而是随机决定从哪个节点请求服务,避免指定节点因故障等原因停止服务的风险 11 minZoom: 11, 12 maxZoom: 17, 13 zoomOffset: 1 14 }).addTo(map); // 文字注记图
第五步:定位到相应范围
1 let latlngs = []; 2 latlngs.push([MaxMinXYData.miny,MaxMinXYData.minx]); 3 latlngs.push([MaxMinXYData.maxy,MaxMinXYData.minx]); 4 latlngs.push([MaxMinXYData.maxy,MaxMinXYData.maxx]); 5 latlngs.push([MaxMinXYData.maxy,MaxMinXYData.maxx]); 6 latlngs.push([MaxMinXYData.miny,MaxMinXYData.minx]); 7 var bound_Polygon = L.polyline(latlngs); 8 map.fitBounds(bound_Polygon.getBounds());
添加marker
1 let text = `<div><span></span><p>${name}${no}</p></div>`; 2 let myIcon = L.divIcon({ 3 html: text, 4 className: "labelMarker" 5 }); 6 console.log("123", item); 7 let circleMarker = L.marker(latlngs, { 8 icon: myIcon, 9 riseOnHover: true, 10 title: `${name} ${no}` 11 }); 12 circleMarker.on('click', function(e) { 13 console.log('点击', $(circleMarker._icon).addClass('selectedMarker')); 14 }) 15 stakeMarkerQidianArr.push(circleMarker);
circleMarker.on('mouseover', () => {
$(circleMarker._icon).addClass('selectedMarker')
})
circleMarker.on('mouseout', () => {
$(circleMarker._icon).removeClass('selectedMarker')
})
mouseover 移入
mouseout 移出
如何成为一个有思想的程序员?博客未尝不是一个好方法

浙公网安备 33010602011771号