当前位置: 代码迷 >> 综合 >> mapbox 地图交互
  详细解决方案

mapbox 地图交互

热度:24   发布时间:2023-10-17 07:59:57.0
<!DOCTYPE html>
<html>
<head><meta charset='utf-8' /><title>mapbox 地图交互</title><meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' /><script src='https://api.tiles.mapbox.com/mapbox-gl-js/v1.0.0/mapbox-gl.js'></script><link href='https://api.tiles.mapbox.com/mapbox-gl-js/v1.0.0/mapbox-gl.css' rel='stylesheet' /><style>body { margin:0; padding:0; }#map { position:absolute; top:0; bottom:0; width:100%; }</style>
</head>
<body><div id='map'></div>
<script>
mapboxgl.accessToken = 'pk.eyJ1IjoiY2hlbndhbmdzaGFuIiwiYSI6ImNqaGp3djlxMTJwb2szZG50ZzBjbDQ1cWIifQ.Gp_2XohZMGO-a6e_treCQQ';
var map = new mapboxgl.Map({container: 'map',style: 'mapbox://styles/mapbox/light-v10',zoom: 12,center: [91.13, 29.65]
});
map.scrollZoom.enable();   // 鼠标滚轮操作地图  禁止 disable
map.boxZoom.enable();       // shoft + 鼠标放大地图
map.dragRotate.enable();    // 鼠标左键放大地图
map.dragPan.enable();       // 鼠标拖动地图
map.keyboard.enable();	    // 键盘操作地图
map.doubleClickZoom.enable();   // 鼠标双击放大地图
map.touchZoomRotate.enable();   //  电脑触摸屏操作地图map.addControl(new mapboxgl.NavigationControl());   // 添加地图缩放控件
map.addControl(new mapboxgl.FullscreenControl());   // 添加全屏控件
map.addControl(new mapboxgl.GeolocateControl({      // 定位控件positionOptions: {enableHighAccuracy: true},trackUserLocation: true
}));
var scale = new mapboxgl.ScaleControl({             // 添加比例尺控件maxWidth: 80,unit: 'imperial'
});
map.addControl(scale);scale.setUnit('metric');                            // 设置度量标准var marker = new mapboxgl.Marker()                  // 添加marker点.setLngLat([91.13, 29.65]).addTo(map);// 添加pop框
var markerHeight = 50, markerRadius = 10, linearOffset = 25;
var popupOffsets = {'top': [0, 0],'top-left': [0,0],'top-right': [0,0],'bottom': [0, -markerHeight],'bottom-left': [linearOffset, (markerHeight - markerRadius + linearOffset) * -1],'bottom-right': [-linearOffset, (markerHeight - markerRadius + linearOffset) * -1],'left': [markerRadius, (markerHeight - markerRadius) * -1],'right': [-markerRadius, (markerHeight - markerRadius) * -1]};
var popup = new mapboxgl.Popup({offset: popupOffsets, className: 'my-class'}).setLngLat(e.lngLat).setHTML("<h1>Hello World!</h1>").setMaxWidth("300px").addTo(map);
</script></body>
</html>

效果展示:

mapbox 地图交互