高德地图

使用高德地图

注册账号并申请Key

  • 首先,注册开发者账号,成为高德开放平台开发者
  • 登陆之后,在进入「应用管理」 页面「创建新应用」
  • 为应用添加 Key,「服务平台」一项请选择「 Web 端 ( JSAPI ) 」

引入 L7

2.0版本在L7内部动态引入了高德地图JS API,因此不再需要单独引入高德JS API,只需设置 type 为 amap 并且传入token

  1. <script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.l7-2.0.0/dist/l7.js"></script>

添加div 标签指定地图容器

同时需要为Div设置 高度和宽度

  1. <div id="map"></div>

初始化 L7 Scene

  1. const scene = new L7.Scene({
  2. id: 'map',
  3. map: new L7.GaodeMap({
  4. style: 'dark', // 样式URL
  5. center: [120.19382669582967, 30.258134],
  6. pitch: 0,
  7. zoom: 12,
  8. token: '高德地图token',
  9. }),
  10. });

这样我们就完成了通过L7 实例化高德地图

添加可视化图层

  • 首先我们需要获取数据,获取数据方法,这里我们获取在线的json数据
  • 然后我们就可以初始一个Layer,并添加到Scene就完成了图层的添加。
  1. fetch('https://gw.alipayobjects.com/os/rmsportal/oVTMqfzuuRFKiDwhPSFL.json')
  2. .then(res => res.json())
  3. .then(data => {
  4. const pointLayer = new L7.PointLayer({})
  5. .source(data.list, {
  6. parser: {
  7. type: 'json',
  8. x: 'j',
  9. y: 'w',
  10. },
  11. })
  12. .shape('cylinder')
  13. .size('t', function(level) {
  14. return [1, 2, level * 2 + 20];
  15. })
  16. .color('t', [
  17. '#094D4A',
  18. '#146968',
  19. '#1D7F7E',
  20. '#289899',
  21. '#34B6B7',
  22. '#4AC5AF',
  23. '#5FD3A6',
  24. '#7BE39E',
  25. '#A1EDB8',
  26. '#CEF8D6',
  27. ])
  28. .style({
  29. opacity: 1.0,
  30. });
  31. scene.addLayer(pointLayer);
  32. });

完整demo代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>创建地图场景</title>
  6. <style>
  7. html,body{overflow:hidden;margin:0;}
  8. #map { position:absolute; top:0; bottom:0; width:100%; }
  9. </style>
  10. </head>
  11. <body>
  12. <div id="map"></div>
  13. <script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.l7-2.0.0/dist/l7.js"></script>
  14. <script>
  15. const scene = new L7.Scene({
  16. id: 'map',
  17. map: new L7.GaodeMap({
  18. style: 'dark', // 样式URL
  19. center: [120.19382669582967, 30.258134],
  20. pitch: 0,
  21. zoom: 12,
  22. token: '高德地图token',
  23. }),
  24. });
  25. fetch('https://gw.alipayobjects.com/os/rmsportal/oVTMqfzuuRFKiDwhPSFL.json')
  26. .then(res => res.json())
  27. .then(data => {
  28. const pointLayer = new L7.PointLayer({})
  29. .source(data.list, {
  30. parser: {
  31. type: 'json',
  32. x: 'j',
  33. y: 'w'
  34. }
  35. })
  36. .shape('cylinder')
  37. .size('t', function(level) {
  38. return [ 1, 2, level * 2 + 20 ];
  39. })
  40. .color('t', [
  41. '#094D4A',
  42. '#146968',
  43. '#1D7F7E',
  44. '#289899',
  45. '#34B6B7',
  46. '#4AC5AF',
  47. '#5FD3A6',
  48. '#7BE39E',
  49. '#A1EDB8',
  50. '#CEF8D6'
  51. ])
  52. .style({
  53. opacity: 1.0
  54. });
  55. scene.addLayer(pointLayer);
  56. });
  57. </script>
  58. </body>
  59. </html>