mvt_mapboxgl.html 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <!--********************************************************************
  2. * Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved.
  3. *********************************************************************-->
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta charset="UTF-8" />
  8. <title data-i18n="resources.title_mvt_mapboxgl"></title>
  9. <style>
  10. .leaflet-gl-layer.mapboxgl-map {
  11. z-index: 1;
  12. }
  13. </style>
  14. <script type="text/javascript" src="../js/include-web.js"></script>
  15. </head>
  16. <body style="margin: 0; overflow: hidden; background: #fff; width: 100%; height: 100%; position: absolute; top: 0">
  17. <div id="map" style="margin: 0 auto; width: 100%; height: 100%"></div>
  18. <!-- 叠加非3857的地图,请使用mapbox-gl-enhance -->
  19. <script
  20. type="text/javascript"
  21. include="mapbox-gl-enhance"
  22. src="../../dist/mapboxgl/include-mapboxgl.js"
  23. ></script>
  24. <!-- 需引入三方插件 mapbox-gl-leaflet https://github.com/mapbox/mapbox-gl-leaflet -->
  25. <script type="text/javascript" include="leaflet-mapbox-gl" src="../../dist/leaflet/include-leaflet.js"></script>
  26. <script type="text/javascript">
  27. var host = window.isLocal ? window.server : 'https://iserver.supermap.io';
  28. var url = host + '/iserver/services/map-china400/rest/maps/China_4326';
  29. // 为与mapboxgl的级别相匹配,leaflet的分辨率应设置为第0级为全球范围宽度除以瓦片宽度256.
  30. // 常见坐标系第0级分辨率 WebMercator(3857):2*6378137*Math.PI/256 WGS84(4326):360.0/256 China2000(4490):360.0/256 Beijing54(4214):360.0/256 Xian80(4610):360.0/256
  31. var topResolution = 360.0 / 256;
  32. var resolutions = [];
  33. for (var zoom = 0; zoom < 22; zoom++) {
  34. resolutions.push(topResolution / Math.pow(2, zoom));
  35. }
  36. var crs = L.Proj.CRS('EPSG:4326', {
  37. origin: [-180, 90],
  38. resolutions: resolutions
  39. });
  40. var map = L.map('map', {
  41. center: [37.71194458007813, -122.24143981933594],
  42. zoom: 11,
  43. crs: crs,
  44. minZoom: 11,
  45. maxZoom: 14
  46. });
  47. L.supermap.tiledMapLayer(url).addTo(map);
  48. $.get(
  49. host +
  50. '/iserver/services/map-mvt-California/rest/maps/California/tileFeature/vectorstyles.json?type=MapBox_GL&styleonly=true&tileURLTemplate=ZXY',
  51. function (style) {
  52. style.layers[0].paint['background-color'] = 'rgba(168,209,221,0)';
  53. var gl = L.mapboxGL({
  54. renderWorldCopies: false,
  55. style: style,
  56. crs: 'EPSG:4326',
  57. // mapboxgl zoom 和leaflet zoom 差一级
  58. minZoom:10,
  59. maxZoom: 13
  60. }).addTo(map);
  61. // 获取 mapboxgl 地图
  62. // var mapboxglMap = gl.getMapboxMap();
  63. }
  64. );
  65. </script>
  66. </body>
  67. </html>