MapTalks 是一款基于 WebGL 的开源地图库,支持多种地图类型和数据源。要使用 MapTalks 移动地图,你需要先引入 MapTalks 的相关文件,然后创建一个地图实例,设置地图的中心点、缩放级别等属性,最后将地图渲染到页面上。
以下是一个简单的示例:
1. 首先,在 HTML 文件中引入 MapTalks 的相关文件:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>MapTalks 移动地图示例</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/maptalks@1.4.0/dist/maptalks.min.css" /> <script src="https://cdn.jsdelivr.net/npm/maptalks@1.4.0/dist/maptalks.min.js"></script> </head> <body> <div id="map" style="width: 100%; height: 100%;"></div> <script> // 在这里编写 JavaScript 代码 </script> </body> </html>
2. 接下来,在 `<script>` 标签内编写 JavaScript 代码,创建地图实例并设置相关属性:
// 创建地图实例 var map = new maptalks.Map('map', { center: [116.397428, 39.916527], // 设置地图中心点为北京市经纬度 zoom: 10, // 设置地图缩放级别为 10 baseLayer: new maptalks.TileLayer('base', { urlTemplate: 'http://mt{s}.google.cn/vt/lyrs=m&x={x}&y={y}&z={z}' // 使用 Google 地图作为底图 }), controls: [new maptalks.ControlZoom()] // 添加缩放控件 });
3. 最后,将地图渲染到页面上:
map.render();
将以上代码添加到 HTML 文件的 `<script>` 标签内,然后在浏览器中打开该 HTML 文件,你将看到一个可移动的 MapTalks 地图。
<!DOCTYPE html> <html> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>地图 - 移动地图</title> <style type="text/css"> html,body{margin:0px;height:100%;width:100%} .container{font:15px "microsoft yahei",Arial,Helvetica;float:left;width:100%;height:100%} </style> <link rel="stylesheet" href="https://unpkg.com/maptalks/dist/maptalks.css"> <script type="text/javascript" src="https://unpkg.com/maptalks/dist/maptalks.min.js"></script> <body> <div id="map" class="container"></div> <script> var map = new maptalks.Map('map', { center: [-0.113049,51.498568], zoom: 14, baseLayer: new maptalks.TileLayer('base', { urlTemplate: 'https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', subdomains: ['a','b','c','d'], attribution: '© <a href="http://osm.org">OpenStreetMap</a> contributors, © <a href="https://carto.com/">CARTO</a>' }), layers : [ new maptalks.VectorLayer('v') ] }); function up() { map.panBy([0, -200]); } function down() { map.panBy([0, 200]); } function left() { map.panBy([-200, 0]); } function right() { map.panBy([200, 0]); } function toCoordinate() { var symbol = { markerType : 'x', markerLineColor : '#f00', markerLineWidth : 4, markerWidth : 20, markerHeight : 20 }; var coordinate = map.getCenter().add(0.008, 0.008); map.getLayer('v') .clear() .addGeometry(new maptalks.Marker(coordinate, { 'symbol' : symbol })); map.panTo(coordinate); } var toolbar = new maptalks.control.Toolbar({ items: [ { item: '↑', click: up }, { item: '↓', click: down }, { item: '←', click: left }, { item: '→', click: right }, { item: 'pan to', click: toCoordinate } ] }).addTo(map); </script> </body> </html>
此处为隐藏内容,请评论后查看隐藏内容,谢谢!
发表评论