├── .changeset ├── README.md └── config.json ├── .editorconfig ├── .fatherrc.base.ts ├── .github ├── .gitleaks.toml ├── ISSUE_TEMPLATE.md ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ └── oscp.yml ├── PULL_REQUEST_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE_EN.md ├── actions │ └── prepare-install │ │ └── action.yml ├── release.yaml └── workflows │ ├── ci.yml │ ├── create-bumb-version-pr.yml │ ├── deploy-site.yml │ ├── gitleaks.yml │ ├── issue-close-require.yml │ ├── issue_assigness.yml │ ├── issue_labeled.yml │ ├── issue_welcome.yml │ ├── issues-similarity-analysis.yml │ ├── release-label.yml │ ├── release-notify.yml │ ├── release.yml │ └── update-snapshots.yml ├── .gitignore ├── .husky ├── commit-msg └── pre-commit ├── .npmrc ├── .prettierignore ├── .prettierrc ├── .stylelintignore ├── .stylelintrc.js ├── .vscode ├── extensions.json └── settings.json ├── CODE_GUIDELINES.md ├── CONTRIBUTING.en-US.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.en-US.md ├── README.md ├── __tests__ ├── integration │ ├── gallery.spec.ts │ ├── heatmap.spec.ts │ ├── line.spec.ts │ ├── mask.spec.ts │ ├── point.spec.ts │ ├── polygon.spec.ts │ ├── preset │ │ ├── constants.js │ │ ├── environment.js │ │ ├── setup.js │ │ └── teardown.js │ ├── snapshots │ │ ├── gallery_fujian.png │ │ ├── gallery_variFlight.png │ │ ├── heatmap_grid.png │ │ ├── heatmap_hexagon.png │ │ ├── heatmap_normal.png │ │ ├── line_arc.png │ │ ├── line_arc3D.png │ │ ├── line_flow.png │ │ ├── line_greatcircle.png │ │ ├── line_normal.png │ │ ├── line_simple.png │ │ ├── line_wall.png │ │ ├── mask_multi.png │ │ ├── mask_single.png │ │ ├── point_billboard.png │ │ ├── point_column.png │ │ ├── point_fill.png │ │ ├── point_fillImage.png │ │ ├── point_text.png │ │ ├── polygon_extrude.png │ │ ├── polygon_extrusion.png │ │ └── polygon_fill.png │ └── utils │ │ ├── generator.ts │ │ ├── sleep.ts │ │ ├── toMatchCanvasSnapshot.ts │ │ └── useSnapshotMatchers.ts └── unit │ └── preset │ └── environment.ts ├── commitlint.config.ts ├── eslint.config.js ├── examples ├── .gitignore ├── constants.ts ├── data │ ├── globe-earthquake-mag.json │ ├── hunan-citys.json │ ├── indoor-3d-map.json │ ├── nanjing-city.json │ ├── shanghaixi-village.json │ └── us-states.json ├── demos │ ├── basemap │ │ ├── amap-data.ts │ │ ├── index.ts │ │ └── wgs84-data.ts │ ├── bugfix │ │ ├── data-shake.ts │ │ ├── index.ts │ │ ├── legend-event.ts │ │ ├── muti-polygon.ts │ │ ├── remove-muti-layer.ts │ │ ├── set-color.ts │ │ ├── set-data.ts │ │ ├── set-size.ts │ │ ├── text-offsets.ts │ │ ├── tile-text.ts │ │ ├── tile-update.ts │ │ └── touch-event.ts │ ├── canvas │ │ ├── event.ts │ │ ├── index.ts │ │ └── layer.ts │ ├── components │ │ ├── index.ts │ │ ├── layer-popup.ts │ │ ├── marker.ts │ │ ├── popup.ts │ │ ├── swipe.ts │ │ └── zoom.ts │ ├── extend │ │ ├── index.ts │ │ └── three-geometry.ts │ ├── gallery │ │ ├── fujian.ts │ │ ├── index.ts │ │ └── vari-flight.ts │ ├── geometry │ │ ├── index.ts │ │ ├── plane.ts │ │ ├── rain.ts │ │ ├── snow.ts │ │ └── terrain.ts │ ├── heatmap │ │ ├── grid.ts │ │ ├── hexagon.ts │ │ ├── index.ts │ │ ├── normal-3d.ts │ │ └── normal.ts │ ├── index.ts │ ├── line │ │ ├── arc-3d.ts │ │ ├── arc.ts │ │ ├── dash.ts │ │ ├── flow.ts │ │ ├── greatcircle.ts │ │ ├── index.ts │ │ ├── normal.ts │ │ ├── simple.ts │ │ └── wall.ts │ ├── mask │ │ ├── index.ts │ │ ├── multi.ts │ │ ├── raster-tile.ts │ │ └── single.ts │ ├── point │ │ ├── billboard.ts │ │ ├── column.ts │ │ ├── dot.ts │ │ ├── fill-image.ts │ │ ├── fill.ts │ │ ├── image.ts │ │ ├── index.ts │ │ ├── radar.ts │ │ └── text.ts │ ├── polygon │ │ ├── extrude-city.ts │ │ ├── extrude.ts │ │ ├── extrusion.ts │ │ ├── fill-linear.ts │ │ ├── fill.ts │ │ ├── index.ts │ │ ├── ocean.ts │ │ ├── texture.ts │ │ └── water.ts │ ├── raster │ │ ├── dem.ts │ │ ├── image.ts │ │ ├── imageBox.ts │ │ ├── index.ts │ │ ├── multiband.ts │ │ ├── ndvi.ts │ │ └── tiff.ts │ ├── tile │ │ ├── index.ts │ │ ├── raster-tile.ts │ │ ├── terrain-rgb.ts │ │ ├── vector-city.ts │ │ ├── vector-line.ts │ │ ├── vector-perf.ts │ │ └── vector-usa.ts │ └── webgpu │ │ ├── boids.ts │ │ ├── compute-texture.ts │ │ ├── idw.ts │ │ ├── index.ts │ │ ├── perf.ts │ │ ├── template.ts │ │ └── utils │ │ └── common.ts ├── index.html ├── index.tsx ├── main.tsx ├── types.ts └── utils │ ├── index.ts │ ├── scene.ts │ └── sleep.ts ├── jest.config.ts ├── jest.e2e.config.ts ├── legacy ├── build │ ├── bundle.ts │ ├── rollup-plugin-glsl.js │ ├── rollup-plugin-inline-worker.js │ ├── rollup-plugin-miniapp.js │ ├── rollup.config.js │ └── rollup.config.worker.js ├── dev-demos │ ├── .gitignore │ ├── .umirc.ts │ ├── index.md │ ├── package.json │ └── src │ │ ├── bugs │ │ ├── heatmap │ │ │ ├── demos │ │ │ │ ├── hexagon.tsx │ │ │ │ └── map.tsx │ │ │ ├── heatmap.md │ │ │ └── hexagon.md │ │ ├── index.md │ │ ├── larkmap │ │ │ ├── demos │ │ │ │ ├── polygon.tsx │ │ │ │ └── rastertile.tsx │ │ │ ├── polygon.md │ │ │ └── rastertile.md │ │ ├── line │ │ │ ├── arc_linear.md │ │ │ ├── demo │ │ │ │ ├── arc_linear.tsx │ │ │ │ ├── gaodev1.tsx │ │ │ │ └── setdata.tsx │ │ │ ├── line.md │ │ │ └── setdata.md │ │ ├── marker │ │ │ ├── demo.tsx │ │ │ ├── event.md │ │ │ ├── index.md │ │ │ └── marker1.tsx │ │ ├── point │ │ │ ├── circle.md │ │ │ ├── cluster.md │ │ │ ├── demos │ │ │ │ ├── circle.tsx │ │ │ │ ├── cluster.tsx │ │ │ │ ├── image.tsx │ │ │ │ ├── imagesize.tsx │ │ │ │ ├── pointstroke.tsx │ │ │ │ ├── pointupdate.tsx │ │ │ │ ├── shape.tsx │ │ │ │ └── text.tsx │ │ │ ├── image.md │ │ │ ├── imagesize.md │ │ │ ├── shape.md │ │ │ ├── stroke.md │ │ │ ├── text.md │ │ │ └── update.md │ │ ├── polygon │ │ │ ├── active.md │ │ │ ├── demos │ │ │ │ ├── district.tsx │ │ │ │ ├── highlight.tsx │ │ │ │ ├── polygon.tsx │ │ │ │ ├── polygon_active.tsx │ │ │ │ ├── polygonzindex.tsx │ │ │ │ ├── quantile.tsx │ │ │ │ ├── scale.tsx │ │ │ │ └── select.tsx │ │ │ ├── district.md │ │ │ ├── highlight.md │ │ │ ├── polygon.md │ │ │ ├── polygonindex.md │ │ │ ├── quantile.md │ │ │ ├── scale.md │ │ │ └── select.md │ │ ├── scene │ │ │ ├── bmap.md │ │ │ ├── demos │ │ │ │ ├── bmap.tsx │ │ │ │ ├── exportimg.tsx │ │ │ │ ├── multiMap.tsx │ │ │ │ ├── removelayer.tsx │ │ │ │ └── testDestroy.tsx │ │ │ ├── exportimg.md │ │ │ ├── multiMap.md │ │ │ ├── removelayer.md │ │ │ └── testDestroy.md │ │ ├── source │ │ │ ├── demos │ │ │ │ ├── source-geometry.tsx │ │ │ │ └── source-update.tsx │ │ │ ├── source.md │ │ │ └── sourceUpdate.md │ │ └── three │ │ │ ├── demo │ │ │ └── marker.tsx │ │ │ └── marker.md │ │ ├── component │ │ ├── control │ │ │ ├── exportImage.md │ │ │ ├── exportImage.tsx │ │ │ ├── fullscreen.md │ │ │ ├── fullscreen.tsx │ │ │ ├── hide.md │ │ │ ├── hide.tsx │ │ │ ├── layerSwitch.md │ │ │ ├── layerSwitch.tsx │ │ │ ├── layerSwitch1.tsx │ │ │ ├── logo.md │ │ │ ├── logo.tsx │ │ │ ├── mapTheme.md │ │ │ ├── mapTheme.tsx │ │ │ ├── mouseLocation.md │ │ │ ├── mouseLocation.tsx │ │ │ ├── navigation.md │ │ │ ├── navigation.tsx │ │ │ ├── position.md │ │ │ ├── position.tsx │ │ │ ├── remove.md │ │ │ ├── remove.tsx │ │ │ ├── scale.md │ │ │ ├── scale.tsx │ │ │ ├── setOptions.md │ │ │ ├── setOptions.tsx │ │ │ ├── swipe.md │ │ │ ├── swipe.tsx │ │ │ ├── zoom.md │ │ │ └── zoom.tsx │ │ ├── marker │ │ │ ├── marker.md │ │ │ ├── marker.tsx │ │ │ ├── markerLayer.md │ │ │ └── markerLayer.tsx │ │ ├── popup │ │ │ ├── layerPopup.md │ │ │ ├── layerPopup.tsx │ │ │ ├── popup.md │ │ │ └── popup.tsx │ │ ├── scene │ │ │ ├── boxSelect.md │ │ │ └── boxSelect.tsx │ │ └── sync-scene │ │ │ ├── helper.ts │ │ │ ├── syncScene.tsx │ │ │ ├── syncSene.md │ │ │ └── types.ts │ │ ├── draw │ │ ├── control.md │ │ ├── demo │ │ │ ├── destroy.tsx │ │ │ ├── draw.tsx │ │ │ ├── drawControl.tsx │ │ │ ├── drawline.tsx │ │ │ └── drawpolygon.tsx │ │ ├── destroy.md │ │ ├── line.md │ │ ├── line_area.md │ │ └── polygon.md │ │ ├── features │ │ ├── canvasLayer │ │ │ ├── canvas2d.md │ │ │ └── canvas2d.tsx │ │ ├── citybuilding │ │ │ ├── amap1.md │ │ │ ├── amap1.tsx │ │ │ ├── amap2.md │ │ │ ├── amap2.tsx │ │ │ ├── mapbox.md │ │ │ └── mapbox.tsx │ │ ├── customLayer │ │ │ ├── marker-layer.md │ │ │ └── marker.md │ │ ├── earth │ │ │ ├── earth.md │ │ │ └── earth.tsx │ │ ├── fix │ │ │ ├── demos │ │ │ │ ├── fix.tsx │ │ │ │ └── fix2.tsx │ │ │ ├── fix.md │ │ │ └── fix2.md │ │ ├── geometry │ │ │ ├── billboard.md │ │ │ ├── demos │ │ │ │ ├── billboard.tsx │ │ │ │ ├── plane.tsx │ │ │ │ └── sprite.tsx │ │ │ ├── plane.md │ │ │ └── sprite.md │ │ ├── heatmap │ │ │ ├── demos │ │ │ │ ├── grid.tsx │ │ │ │ ├── grid3d.tsx │ │ │ │ ├── heatmap.tsx │ │ │ │ ├── heatmap3d.tsx │ │ │ │ └── hexagon.tsx │ │ │ ├── grid.md │ │ │ ├── grid3d.md │ │ │ ├── heatmap.md │ │ │ ├── heatmap3d.md │ │ │ └── hexagon.md │ │ ├── imageLayer │ │ │ ├── image.md │ │ │ ├── image.tsx │ │ │ ├── raster.md │ │ │ └── raster.tsx │ │ ├── legend │ │ │ ├── cat.md │ │ │ ├── cat.tsx │ │ │ └── useLine.ts │ │ ├── line │ │ │ ├── demos │ │ │ │ ├── arc_deg.tsx │ │ │ │ ├── flowline.tsx │ │ │ │ ├── greatcircleline.tsx │ │ │ │ ├── line.tsx │ │ │ │ ├── lineAnimate.tsx │ │ │ │ ├── lineArc3d.tsx │ │ │ │ ├── lineArcLinear.tsx │ │ │ │ ├── lineArcPlane.tsx │ │ │ │ ├── lineArrow.tsx │ │ │ │ ├── linePopulation.tsx │ │ │ │ ├── lineTexture.tsx │ │ │ │ ├── lineWorker.tsx │ │ │ │ ├── line_stroke.tsx │ │ │ │ ├── linearc.tsx │ │ │ │ ├── lineblur.tsx │ │ │ │ ├── linedash.tsx │ │ │ │ ├── lineheight.tsx │ │ │ │ ├── linelinear.tsx │ │ │ │ ├── linewall.tsx │ │ │ │ └── simplelines.tsx │ │ │ ├── flowline.md │ │ │ ├── line.md │ │ │ ├── lineAnimate.md │ │ │ ├── lineArc.md │ │ │ ├── lineArc3d.md │ │ │ ├── lineArc3dEarth.md │ │ │ ├── lineArcDeg.md │ │ │ ├── lineArcLinear.md │ │ │ ├── lineArcPlane.md │ │ │ ├── lineArrow.md │ │ │ ├── lineGreatcircle.md │ │ │ ├── linePopulation.md │ │ │ ├── lineTexture.md │ │ │ ├── lineWorker.md │ │ │ ├── line_stroke.md │ │ │ ├── linearline.md │ │ │ ├── lineblur.md │ │ │ ├── linedash.md │ │ │ ├── lineheight.md │ │ │ ├── linewall.md │ │ │ ├── simpleLine_linear.md │ │ │ └── simpleline.md │ │ ├── marker │ │ │ ├── demos │ │ │ │ └── marker.tsx │ │ │ └── marker.md │ │ ├── mask │ │ │ ├── demos │ │ │ │ ├── heatmap.tsx │ │ │ │ ├── heatmapgrid.tsx │ │ │ │ ├── heatmapgrid3d.tsx │ │ │ │ ├── hexgon.tsx │ │ │ │ ├── image.tsx │ │ │ │ ├── raster.tsx │ │ │ │ ├── raster_point.tsx │ │ │ │ ├── singleMask.tsx │ │ │ │ ├── text.tsx │ │ │ │ └── wind.tsx │ │ │ ├── heatmap.md │ │ │ ├── heatmapgrid.md │ │ │ ├── heatmapgrid3d.md │ │ │ ├── hexgon.md │ │ │ ├── image.md │ │ │ ├── raster.md │ │ │ ├── raster_point.md │ │ │ ├── singleMask.md │ │ │ ├── text.md │ │ │ └── wind.md │ │ ├── point │ │ │ ├── circle.md │ │ │ ├── demos │ │ │ │ ├── billboard.tsx │ │ │ │ ├── circle-device.tsx │ │ │ │ ├── circle-webgpu.tsx │ │ │ │ ├── circlemeter.tsx │ │ │ │ ├── column.tsx │ │ │ │ ├── cylinder.tsx │ │ │ │ ├── fill-image.tsx │ │ │ │ ├── iconfont.tsx │ │ │ │ ├── icons.tsx │ │ │ │ ├── normal-device.tsx │ │ │ │ ├── normal.tsx │ │ │ │ ├── radar.tsx │ │ │ │ ├── simple.tsx │ │ │ │ ├── text.tsx │ │ │ │ └── text2.tsx │ │ │ ├── pointBillboard.md │ │ │ ├── pointCircle.md │ │ │ ├── pointCircleWebGPU.md │ │ │ ├── pointColumn.md │ │ │ ├── pointCylinder.md │ │ │ ├── pointEarthfill.md │ │ │ ├── pointFillImage.md │ │ │ ├── pointIconfont.md │ │ │ ├── pointIcons.md │ │ │ ├── pointImage.md │ │ │ ├── pointNormal.md │ │ │ ├── pointNormalDevice.md │ │ │ ├── pointRadar.md │ │ │ ├── pointSimple.md │ │ │ ├── pointText.md │ │ │ ├── pointText2.md │ │ │ └── pointWave.md │ │ ├── polygon │ │ │ ├── demos │ │ │ │ ├── extrude.tsx │ │ │ │ ├── fill.tsx │ │ │ │ ├── fill_3d.tsx │ │ │ │ ├── indoor.tsx │ │ │ │ ├── ocean.tsx │ │ │ │ ├── texture.tsx │ │ │ │ └── water.tsx │ │ │ ├── extrude.md │ │ │ ├── fill.md │ │ │ ├── fill_3d.md │ │ │ ├── indoor.md │ │ │ ├── ocean.md │ │ │ ├── texture.md │ │ │ └── water.md │ │ ├── something │ │ │ ├── demos │ │ │ │ └── wind.tsx │ │ │ └── wind.md │ │ ├── threejs │ │ │ ├── amap1.md │ │ │ ├── amap2.md │ │ │ ├── amapCar.md │ │ │ ├── map.md │ │ │ └── mapbox.md │ │ └── tile │ │ │ ├── basemap.md │ │ │ ├── basemap │ │ │ ├── basemap.tsx │ │ │ ├── chinadistrictmap.tsx │ │ │ ├── chinamap.tsx │ │ │ ├── data.ts │ │ │ ├── vectormap.tsx │ │ │ ├── vectormap2.tsx │ │ │ └── worldmap.tsx │ │ │ ├── hillshade.md │ │ │ ├── mask.md │ │ │ ├── minedatamap.md │ │ │ ├── raster │ │ │ └── imageDataMapping.tsx │ │ │ ├── rasterData.md │ │ │ ├── rasterData │ │ │ ├── hillShading.tsx │ │ │ ├── loadImage.tsx │ │ │ ├── loadImageMask.tsx │ │ │ ├── loadImageRGB.tsx │ │ │ ├── loadLerc.tsx │ │ │ ├── loadMultiTiff.tsx │ │ │ ├── loadTiff.tsx │ │ │ └── update.tsx │ │ │ ├── rasterDataImage.md │ │ │ ├── rasterDataMask.md │ │ │ ├── rasterDataMul.md │ │ │ ├── rasterDataRGB.md │ │ │ ├── rasterDataUpdate.md │ │ │ ├── vector.md │ │ │ ├── vector │ │ │ ├── debugLayer.tsx │ │ │ ├── geojson-vt.tsx │ │ │ ├── line.tsx │ │ │ ├── mask.tsx │ │ │ └── point.tsx │ │ │ ├── vectormap.md │ │ │ ├── worldmap.md │ │ │ └── worldmap.tsx │ │ ├── gallery │ │ ├── map │ │ │ ├── demo │ │ │ │ ├── 3d_base_map.tsx │ │ │ │ └── fujian.tsx │ │ │ ├── fujian.md │ │ │ └── suspension-map.md │ │ └── scale │ │ │ ├── cat.md │ │ │ ├── cat.tsx │ │ │ ├── diverging.md │ │ │ ├── diverging.tsx │ │ │ ├── index.md │ │ │ ├── linear.md │ │ │ ├── linear.tsx │ │ │ ├── map.md │ │ │ ├── map.tsx │ │ │ ├── quantile.md │ │ │ ├── quantile.tsx │ │ │ ├── quantize.md │ │ │ ├── quantize.tsx │ │ │ ├── sequential.md │ │ │ ├── sequential.tsx │ │ │ ├── threshold.md │ │ │ ├── threshold.tsx │ │ │ └── useLine.ts │ │ ├── raster │ │ ├── demos │ │ │ ├── ndvi.tsx │ │ │ └── rasterFile.tsx │ │ ├── image │ │ │ ├── demos │ │ │ │ └── image.tsx │ │ │ └── image.md │ │ ├── multiband │ │ │ ├── 432.md │ │ │ ├── cog.md │ │ │ ├── demos │ │ │ │ ├── cog.tsx │ │ │ │ ├── rasterFile2.tsx │ │ │ │ └── rasterNDVI.tsx │ │ │ ├── lc_08 │ │ │ │ ├── 432.tsx │ │ │ │ ├── NDBI.tsx │ │ │ │ ├── NDVI.tsx │ │ │ │ ├── NDWI.tsx │ │ │ │ ├── multfile.tsx │ │ │ │ └── rgb.tsx │ │ │ ├── ndbi.md │ │ │ ├── ndvi.md │ │ │ ├── ndwi.md │ │ │ ├── rasterNDVI.md │ │ │ └── rgb.md │ │ ├── ndvi.md │ │ ├── rasterFile.md │ │ └── single │ │ │ ├── demos │ │ │ ├── light.tsx │ │ │ └── rasterFile.tsx │ │ │ ├── light.md │ │ │ └── rasterFile.md │ │ ├── tile │ │ ├── BaseMap │ │ │ ├── Sentinel-2.md │ │ │ ├── customimage.md │ │ │ ├── dem.md │ │ │ ├── demos │ │ │ │ ├── Sentinel-2.tsx │ │ │ │ ├── customImage.tsx │ │ │ │ ├── dem.tsx │ │ │ │ ├── exportImage.tsx │ │ │ │ ├── hillshade.tsx │ │ │ │ ├── mask.tsx │ │ │ │ ├── mask2.tsx │ │ │ │ ├── normal.tsx │ │ │ │ ├── raster.tsx │ │ │ │ ├── rasterupdate.tsx │ │ │ │ ├── terrain.tsx │ │ │ │ ├── wms.tsx │ │ │ │ ├── wmts.tsx │ │ │ │ └── zelda.tsx │ │ │ ├── export.md │ │ │ ├── hillshader.md │ │ │ ├── mask.md │ │ │ ├── mask2.md │ │ │ ├── normal.md │ │ │ ├── raster.md │ │ │ ├── rasterupdate.md │ │ │ ├── terrain.md │ │ │ ├── wmsmap.md │ │ │ ├── wmts.md │ │ │ └── zelda.md │ │ ├── Mask │ │ │ ├── demos │ │ │ │ ├── raster_roller.tsx │ │ │ │ └── vector_raster.tsx │ │ │ ├── raster_roller.md │ │ │ └── vector_raster.md │ │ ├── Raster │ │ │ ├── demos │ │ │ │ ├── image.tsx │ │ │ │ ├── imageRGB.tsx │ │ │ │ ├── multiRgb.tsx │ │ │ │ ├── mutiraster.tsx │ │ │ │ ├── rasterData.tsx │ │ │ │ └── terrainRgb.tsx │ │ │ ├── image.md │ │ │ ├── imageRGB.md │ │ │ ├── multiRaster.md │ │ │ ├── multirgb.md │ │ │ ├── rasterData.md │ │ │ └── terrainrgb.md │ │ └── Vector │ │ │ ├── chinacity.md │ │ │ ├── chinadistrict.md │ │ │ ├── citytile.md │ │ │ ├── debug.md │ │ │ ├── demos │ │ │ ├── chinadistrictmap.tsx │ │ │ ├── chinamap.tsx │ │ │ ├── citytile.tsx │ │ │ ├── data.ts │ │ │ ├── debug.tsx │ │ │ ├── event.tsx │ │ │ ├── farmland.tsx │ │ │ ├── geojonsvt_update.tsx │ │ │ ├── geojson-vt.tsx │ │ │ ├── pmtiles.tsx │ │ │ ├── point.tsx │ │ │ ├── polygon.tsx │ │ │ ├── simpleLine.tsx │ │ │ ├── text.tsx │ │ │ ├── vector_join.tsx │ │ │ ├── vectormask.tsx │ │ │ └── worldmap.tsx │ │ │ ├── event.md │ │ │ ├── farmland.md │ │ │ ├── geojsonvt.md │ │ │ ├── geojsonvt_update.md │ │ │ ├── pmtiles.md │ │ │ ├── point.md │ │ │ ├── polygon.md │ │ │ ├── simpleLine.md │ │ │ ├── text.md │ │ │ ├── vector_join.md │ │ │ ├── vectormask.md │ │ │ └── worldmap.md │ │ └── webgpu │ │ ├── device │ │ ├── boids.md │ │ ├── compute_texture.md │ │ ├── demos │ │ │ ├── boids.tsx │ │ │ ├── compute_texture.tsx │ │ │ ├── g-device.tsx │ │ │ ├── rect.tsx │ │ │ ├── texture.tsx │ │ │ └── uv.tsx │ │ ├── g-device.md │ │ ├── rect.md │ │ └── texture.md │ │ └── raw │ │ ├── boids.md │ │ ├── demos │ │ ├── boids │ │ │ ├── boids.tsx │ │ │ ├── sprite.wgsl │ │ │ └── updateSprites.wgsl │ │ ├── raw.tsx │ │ └── utils.ts │ │ └── raw.md ├── dev-docs │ ├── ConfigSchemaValidation.md │ ├── IoC 容器、依赖注入与服务说明.md │ ├── MultiPassRenderer.md │ ├── PixelPickingEngine.md │ ├── TAA.md │ ├── screenshots │ │ ├── MSAA.png │ │ ├── blurpass.png │ │ ├── custom-effect.png │ │ ├── di-containers.png │ │ ├── dotscreen.png │ │ ├── halftone.png │ │ ├── halton.png │ │ ├── hexagonalPixelate.png │ │ ├── jest.png │ │ ├── mapbox-MSAA.png │ │ ├── monorep.png │ │ ├── multi-scene.png │ │ ├── noise.png │ │ ├── packages.png │ │ ├── sepia.png │ │ ├── taa-1.png │ │ ├── taa-result.gif │ │ ├── taa-step1.png │ │ ├── taa-step2.png │ │ └── taa-step3.png │ ├── 使用方法.md │ ├── 构建方案.md │ ├── 自动化测试方案.md │ └── 自定义后处理效果.md └── scripts │ ├── merge_js_ts.sh │ └── merge_md.sh ├── package.json ├── packages ├── component │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── __tests__ │ │ ├── buttonControl.spec.ts │ │ ├── control.spec.ts │ │ ├── exportImage.spec.ts │ │ ├── fullscreen.spec.ts │ │ ├── layerPopup.spec.ts │ │ ├── layerSwitch.spec.ts │ │ ├── mapTheme.spec.ts │ │ ├── marker.spec.tsx │ │ ├── mouseLocation.spec.ts │ │ ├── navigation.spec.ts │ │ ├── popperControl.spec.ts │ │ ├── popup.spec.ts │ │ ├── scale.spec.ts │ │ ├── selectControl.spec.ts │ │ ├── swipe.spec.ts │ │ ├── util.spec.ts │ │ └── zoom.spec.ts │ ├── package.json │ ├── src │ │ ├── assets │ │ │ └── iconfont │ │ │ │ └── iconfont.js │ │ ├── constants │ │ │ └── index.ts │ │ ├── control │ │ │ ├── baseControl │ │ │ │ ├── buttonControl.ts │ │ │ │ ├── control.ts │ │ │ │ ├── index.ts │ │ │ │ ├── popperControl.ts │ │ │ │ └── selectControl.ts │ │ │ ├── exportImage.ts │ │ │ ├── fullscreen.ts │ │ │ ├── geoLocate.ts │ │ │ ├── layerSwitch.ts │ │ │ ├── logo.ts │ │ │ ├── mapTheme.ts │ │ │ ├── mouseLocation.ts │ │ │ ├── scale.ts │ │ │ ├── swipe.ts │ │ │ └── zoom.ts │ │ ├── css │ │ │ ├── button.less │ │ │ ├── control.less │ │ │ ├── index.css │ │ │ ├── index.less │ │ │ ├── l7.less │ │ │ ├── layerPopup.less │ │ │ ├── logo.less │ │ │ ├── mouseLocation.less │ │ │ ├── popper.less │ │ │ ├── popup.less │ │ │ ├── scale.less │ │ │ ├── select.less │ │ │ ├── swipe.less │ │ │ ├── variables.less │ │ │ └── zoom.less │ │ ├── images │ │ │ ├── layers.png │ │ │ ├── layers.svg │ │ │ ├── logo.png │ │ │ └── quanping.svg │ │ ├── index.ts │ │ ├── interface.ts │ │ ├── marker-layer.ts │ │ ├── marker.ts │ │ ├── popup │ │ │ ├── layerPopup.ts │ │ │ └── popup.ts │ │ └── utils │ │ │ ├── anchor.ts │ │ │ ├── icon.ts │ │ │ ├── popper.ts │ │ │ └── screenfull.ts │ ├── style.d.ts │ └── tsconfig.json ├── core │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── __tests__ │ │ ├── core.spec.ts │ │ ├── shader │ │ │ └── shader.spec.ts │ │ └── utils │ │ │ └── math.spec.ts │ ├── glsl.d.ts │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── inversify.config.ts │ │ ├── services │ │ │ ├── asset │ │ │ │ ├── FontService.ts │ │ │ │ ├── IFontService.ts │ │ │ │ ├── IIconService.ts │ │ │ │ ├── ITextureService.ts │ │ │ │ └── IconService.ts │ │ │ ├── camera │ │ │ │ ├── Camera.ts │ │ │ │ ├── CameraService.ts │ │ │ │ ├── ICameraService.ts │ │ │ │ └── Landmark.ts │ │ │ ├── component │ │ │ │ ├── ControlService.ts │ │ │ │ ├── IControlService.ts │ │ │ │ ├── IMarkerService.ts │ │ │ │ ├── IPopupService.ts │ │ │ │ ├── MarkerService.ts │ │ │ │ └── PopupService.ts │ │ │ ├── config │ │ │ │ ├── ConfigService.ts │ │ │ │ ├── IConfigService.ts │ │ │ │ ├── mapConfigSchema.ts │ │ │ │ ├── sceneConfigSchema.ts │ │ │ │ └── warnInfo.ts │ │ │ ├── coordinate │ │ │ │ ├── CoordinateSystemService.ts │ │ │ │ └── ICoordinateSystemService.ts │ │ │ ├── debug │ │ │ │ ├── DebugService.ts │ │ │ │ └── IDebugService.ts │ │ │ ├── interaction │ │ │ │ ├── IInteractionService.ts │ │ │ │ ├── IPickingService.ts │ │ │ │ ├── InteractionService.ts │ │ │ │ └── PickingService.ts │ │ │ ├── layer │ │ │ │ ├── ILayerService.ts │ │ │ │ ├── IStyleAttributeService.ts │ │ │ │ ├── LayerService.ts │ │ │ │ ├── StyleAttribute.ts │ │ │ │ └── StyleAttributeService.ts │ │ │ ├── map │ │ │ │ └── IMapService.ts │ │ │ ├── renderer │ │ │ │ ├── IAttribute.ts │ │ │ │ ├── IBuffer.ts │ │ │ │ ├── IElements.ts │ │ │ │ ├── IFramebuffer.ts │ │ │ │ ├── IModel.ts │ │ │ │ ├── IMultiPassRenderer.ts │ │ │ │ ├── IRenderbuffer.ts │ │ │ │ ├── IRendererService.ts │ │ │ │ ├── ITexture2D.ts │ │ │ │ ├── IUniform.ts │ │ │ │ ├── gl.ts │ │ │ │ └── passes │ │ │ │ │ ├── BaseNormalPass.ts │ │ │ │ │ ├── BasePostProcessingPass.ts │ │ │ │ │ ├── ClearPass.ts │ │ │ │ │ ├── MultiPassRenderer.ts │ │ │ │ │ ├── PixelPickingPass.ts │ │ │ │ │ ├── PostProcessor.ts │ │ │ │ │ ├── RenderPass.ts │ │ │ │ │ └── post-processing │ │ │ │ │ ├── BloomPass.ts │ │ │ │ │ ├── BlurHPass.ts │ │ │ │ │ ├── BlurVPass.ts │ │ │ │ │ ├── ColorHalfTonePass.ts │ │ │ │ │ ├── CopyPass.ts │ │ │ │ │ ├── HexagonalPixelatePass.ts │ │ │ │ │ ├── InkPass.ts │ │ │ │ │ ├── NoisePass.ts │ │ │ │ │ └── SepiaPass.ts │ │ │ ├── scene │ │ │ │ ├── ISceneService.ts │ │ │ │ └── SceneService.ts │ │ │ ├── shader │ │ │ │ ├── IShaderModuleService.ts │ │ │ │ └── ShaderModuleService.ts │ │ │ └── source │ │ │ │ └── ISourceService.ts │ │ ├── shaders │ │ │ ├── common.glsl │ │ │ ├── common_light.glsl │ │ │ ├── decode.glsl │ │ │ ├── lighting.glsl │ │ │ ├── picking.frag.glsl │ │ │ ├── picking.vert.glsl │ │ │ ├── picking_uniforms.glsl │ │ │ ├── post-processing │ │ │ │ ├── bloom.glsl │ │ │ │ ├── blur.glsl │ │ │ │ ├── colorhalftone.glsl │ │ │ │ ├── copy.glsl │ │ │ │ ├── hexagonalpixelate.glsl │ │ │ │ ├── ink.glsl │ │ │ │ ├── noise.glsl │ │ │ │ ├── quad.glsl │ │ │ │ └── sepia.glsl │ │ │ ├── project.glsl │ │ │ ├── projection.glsl │ │ │ ├── rotation_2d.glsl │ │ │ ├── scene_uniforms.glsl │ │ │ └── sdf_2d.glsl │ │ └── utils │ │ │ ├── clock.ts │ │ │ ├── dom.ts │ │ │ ├── font_util.ts │ │ │ ├── math.ts │ │ │ ├── project.ts │ │ │ ├── sdf-2d.ts │ │ │ ├── shader-module.ts │ │ │ └── vertex-compression.ts │ └── tsconfig.json ├── l7 │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.en-US.md │ ├── README.md │ ├── demo │ │ ├── circle.html │ │ ├── cylinder.html │ │ ├── dot.html │ │ ├── heatmap.html │ │ ├── heatmap3d.html │ │ ├── image.html │ │ ├── polygon.html │ │ ├── text.html │ │ └── text2.html │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── version.ts │ └── tsconfig.json ├── layers │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__ │ │ ├── canvas │ │ │ └── layer.spec.ts │ │ ├── citybuliding │ │ │ └── layer.spec.ts │ │ ├── core │ │ │ ├── layer.event.spec.ts │ │ │ └── layer.spec.ts │ │ ├── geometry │ │ │ └── layer.spec.ts │ │ ├── heatmap │ │ │ └── layer.spec.ts │ │ ├── image │ │ │ └── imageLayer.spec.ts │ │ ├── line │ │ │ └── lineLayer.spec.ts │ │ ├── mask │ │ │ └── mask.spec.ts │ │ ├── plugins │ │ │ └── lighting.spec.ts │ │ ├── point │ │ │ ├── base_layer.spec.ts │ │ │ ├── layer.spec.ts │ │ │ ├── layer_init.spec.ts │ │ │ └── point_layer.spec.ts │ │ ├── polygon │ │ │ ├── polygonTriangulation.spec.ts │ │ │ └── polygon_layer.spec.ts │ │ ├── raster │ │ │ ├── data.ts │ │ │ └── raster.spec.ts │ │ ├── tile │ │ │ ├── raster-tile.spec.ts │ │ │ └── vector-tile.spec.ts │ │ ├── utils │ │ │ └── extrude_polyline.spec.ts │ │ └── wind │ │ │ └── wind.spec.ts │ ├── glsl.d.ts │ ├── package.json │ ├── src │ │ ├── canvas │ │ │ ├── index.ts │ │ │ └── models │ │ │ │ ├── canvas.ts │ │ │ │ ├── constants.ts │ │ │ │ └── index.ts │ │ ├── citybuliding │ │ │ ├── building.ts │ │ │ ├── models │ │ │ │ └── build.ts │ │ │ └── shaders │ │ │ │ ├── build_frag.glsl │ │ │ │ └── build_vert.glsl │ │ ├── core │ │ │ ├── BaseLayer.ts │ │ │ ├── BaseModel.ts │ │ │ ├── CommonStyleAttribute.ts │ │ │ ├── LayerPickService.ts │ │ │ ├── TextureService.ts │ │ │ ├── constant.ts │ │ │ ├── interface.ts │ │ │ ├── line_trangluation.ts │ │ │ ├── schema.ts │ │ │ ├── shape │ │ │ │ ├── Path.ts │ │ │ │ ├── arrow.ts │ │ │ │ └── extrude.ts │ │ │ ├── triangulation.ts │ │ │ └── utils.ts │ │ ├── earth │ │ │ ├── index.ts │ │ │ ├── models │ │ │ │ ├── atmosphere.ts │ │ │ │ ├── base.ts │ │ │ │ └── bloomsphere.ts │ │ │ ├── shaders │ │ │ │ ├── atmosphere │ │ │ │ │ ├── atmosphere_frag.glsl │ │ │ │ │ └── atmosphere_vert.glsl │ │ │ │ ├── base │ │ │ │ │ ├── base_frag.glsl │ │ │ │ │ └── base_vert.glsl │ │ │ │ └── bloomshpere │ │ │ │ │ ├── bloomsphere_frag.glsl │ │ │ │ │ └── bloomsphere_vert.glsl │ │ │ └── utils.ts │ │ ├── geometry │ │ │ ├── index.ts │ │ │ ├── models │ │ │ │ ├── billboard.ts │ │ │ │ ├── index.ts │ │ │ │ ├── plane.ts │ │ │ │ └── sprite.ts │ │ │ └── shaders │ │ │ │ ├── billboard_frag.glsl │ │ │ │ ├── billboard_vert.glsl │ │ │ │ ├── plane_frag.glsl │ │ │ │ ├── plane_vert.glsl │ │ │ │ ├── sprite_frag.glsl │ │ │ │ └── sprite_vert.glsl │ │ ├── heatmap │ │ │ ├── index.ts │ │ │ ├── models │ │ │ │ ├── grid.ts │ │ │ │ ├── grid3d.ts │ │ │ │ ├── heatmap.ts │ │ │ │ ├── hexagon.ts │ │ │ │ └── index.ts │ │ │ ├── shaders │ │ │ │ ├── grid │ │ │ │ │ ├── grid_frag.glsl │ │ │ │ │ └── grid_vert.glsl │ │ │ │ ├── grid3d │ │ │ │ │ ├── grid_3d_frag.glsl │ │ │ │ │ └── grid_3d_vert.glsl │ │ │ │ ├── heatmap │ │ │ │ │ ├── heatmap_3d_frag.glsl │ │ │ │ │ ├── heatmap_3d_vert.glsl │ │ │ │ │ ├── heatmap_frag.glsl │ │ │ │ │ ├── heatmap_framebuffer_frag.glsl │ │ │ │ │ ├── heatmap_framebuffer_vert.glsl │ │ │ │ │ └── heatmap_vert.glsl │ │ │ │ └── hexagon │ │ │ │ │ ├── hexagon_frag.glsl │ │ │ │ │ └── hexagon_vert.glsl │ │ │ └── triangulation.ts │ │ ├── image │ │ │ ├── index.ts │ │ │ ├── models │ │ │ │ ├── image.ts │ │ │ │ └── index.ts │ │ │ └── shaders │ │ │ │ ├── dataImage_frag.glsl │ │ │ │ ├── image_frag.glsl │ │ │ │ └── image_vert.glsl │ │ ├── index.ts │ │ ├── line │ │ │ ├── index.ts │ │ │ ├── models │ │ │ │ ├── arc.ts │ │ │ │ ├── arc_3d.ts │ │ │ │ ├── flow.ts │ │ │ │ ├── great_circle.ts │ │ │ │ ├── index.ts │ │ │ │ ├── line.ts │ │ │ │ ├── simple_line.ts │ │ │ │ └── wall.ts │ │ │ └── shaders │ │ │ │ ├── arc │ │ │ │ ├── line_arc_frag.glsl │ │ │ │ └── line_arc_vert.glsl │ │ │ │ ├── arc3d │ │ │ │ ├── line_arc_3d_frag.glsl │ │ │ │ └── line_arc_3d_vert.glsl │ │ │ │ ├── flow │ │ │ │ ├── flow_line_frag.glsl │ │ │ │ └── flow_line_vert.glsl │ │ │ │ ├── greatCircle │ │ │ │ ├── line_arc_great_circle_frag.glsl │ │ │ │ └── line_arc_great_circle_vert.glsl │ │ │ │ ├── line │ │ │ │ ├── line_frag.glsl │ │ │ │ └── line_vert.glsl │ │ │ │ ├── simple │ │ │ │ ├── simpleline_frag.glsl │ │ │ │ └── simpleline_vert.glsl │ │ │ │ └── wall │ │ │ │ ├── wall_frag.glsl │ │ │ │ └── wall_vert.glsl │ │ ├── mask │ │ │ ├── index.ts │ │ │ ├── models │ │ │ │ ├── fill.ts │ │ │ │ └── index.ts │ │ │ └── shaders │ │ │ │ └── mask_vert.glsl │ │ ├── plugins │ │ │ ├── DataMappingPlugin.ts │ │ │ ├── DataSourcePlugin.ts │ │ │ ├── FeatureScalePlugin.ts │ │ │ ├── LayerAnimateStylePlugin.ts │ │ │ ├── LayerMaskPlugin.ts │ │ │ ├── LayerModelPlugin.ts │ │ │ ├── LayerStylePlugin.ts │ │ │ ├── LightingPlugin.ts │ │ │ ├── MultiPassRendererPlugin.ts │ │ │ ├── PixelPickingPlugin.ts │ │ │ ├── RegisterStyleAttributePlugin.ts │ │ │ ├── ShaderUniformPlugin.ts │ │ │ ├── UpdateModelPlugin.ts │ │ │ ├── UpdateStyleAttributePlugin.ts │ │ │ └── index.ts │ │ ├── point │ │ │ ├── index.ts │ │ │ ├── models │ │ │ │ ├── billboard_point.ts │ │ │ │ ├── earthExtrude.ts │ │ │ │ ├── earthFill.ts │ │ │ │ ├── extrude.ts │ │ │ │ ├── fill.ts │ │ │ │ ├── fillImage.ts │ │ │ │ ├── image.ts │ │ │ │ ├── index.ts │ │ │ │ ├── normal.ts │ │ │ │ ├── radar.ts │ │ │ │ └── text.ts │ │ │ ├── shaders │ │ │ │ ├── billboard │ │ │ │ │ ├── billboard_point_frag.glsl │ │ │ │ │ └── billboard_point_vert.glsl │ │ │ │ ├── earthExtrude │ │ │ │ │ ├── earthExtrude_frag.glsl │ │ │ │ │ └── earthExtrude_vert.glsl │ │ │ │ ├── earthFill │ │ │ │ │ ├── earthFill_frag.glsl │ │ │ │ │ └── earthFill_vert.glsl │ │ │ │ ├── extrude │ │ │ │ │ ├── extrude_frag.glsl │ │ │ │ │ └── extrude_vert.glsl │ │ │ │ ├── fill │ │ │ │ │ ├── fill_frag.glsl │ │ │ │ │ └── fill_vert.glsl │ │ │ │ ├── fillImage │ │ │ │ │ ├── fillImage_frag.glsl │ │ │ │ │ └── fillImage_vert.glsl │ │ │ │ ├── image │ │ │ │ │ ├── image_frag.glsl │ │ │ │ │ └── image_vert.glsl │ │ │ │ ├── normal │ │ │ │ │ ├── normal_frag.glsl │ │ │ │ │ └── normal_vert.glsl │ │ │ │ ├── radar │ │ │ │ │ ├── radar_frag.glsl │ │ │ │ │ └── radar_vert.glsl │ │ │ │ └── text │ │ │ │ │ ├── text_frag.glsl │ │ │ │ │ └── text_vert.glsl │ │ │ └── shape │ │ │ │ └── extrude.ts │ │ ├── polygon │ │ │ ├── index.ts │ │ │ ├── models │ │ │ │ ├── extrude.ts │ │ │ │ ├── extrusion.ts │ │ │ │ ├── fill.ts │ │ │ │ ├── index.ts │ │ │ │ ├── ocean.ts │ │ │ │ └── water.ts │ │ │ └── shaders │ │ │ │ ├── extrude │ │ │ │ ├── polygon_extrude_frag.glsl │ │ │ │ ├── polygon_extrude_picklight_frag.glsl │ │ │ │ ├── polygon_extrude_picklight_vert.glsl │ │ │ │ ├── polygon_extrude_vert.glsl │ │ │ │ ├── polygon_extrudetex_frag.glsl │ │ │ │ └── polygon_extrudetex_vert.glsl │ │ │ │ ├── extrusion │ │ │ │ ├── polygon_extrusion_frag.glsl │ │ │ │ └── polygon_extrusion_vert.glsl │ │ │ │ ├── fill │ │ │ │ ├── fill_frag.glsl │ │ │ │ ├── fill_linear_frag.glsl │ │ │ │ ├── fill_linear_vert.glsl │ │ │ │ └── fill_vert.glsl │ │ │ │ ├── ocean │ │ │ │ ├── ocean_frag.glsl │ │ │ │ └── ocean_vert.glsl │ │ │ │ └── water │ │ │ │ ├── polygon_water_frag.glsl │ │ │ │ └── polygon_water_vert.glsl │ │ ├── raster │ │ │ ├── buffers │ │ │ │ └── triangulation.ts │ │ │ ├── index.ts │ │ │ ├── models │ │ │ │ ├── index.ts │ │ │ │ ├── raster.ts │ │ │ │ ├── rasterRgb.ts │ │ │ │ └── rasterTerrainRgb.ts │ │ │ └── shaders │ │ │ │ ├── raster │ │ │ │ ├── raster_2d_frag.glsl │ │ │ │ └── raster_2d_vert.glsl │ │ │ │ ├── rgb │ │ │ │ ├── raster_rgb_frag.glsl │ │ │ │ └── raster_rgb_vert.glsl │ │ │ │ └── terrain │ │ │ │ ├── terrain_rgb_frag.glsl │ │ │ │ └── terrain_rgb_vert.glsl │ │ ├── shader │ │ │ ├── minify_frag.glsl │ │ │ └── minify_picking_frag.glsl │ │ ├── tile │ │ │ ├── core │ │ │ │ ├── BaseLayer.ts │ │ │ │ └── TileDebugLayer.ts │ │ │ ├── interaction │ │ │ │ ├── getFeatureData.ts │ │ │ │ ├── getRasterData.ts │ │ │ │ └── utils.ts │ │ │ ├── interface.ts │ │ │ ├── service │ │ │ │ ├── TileLayerService.ts │ │ │ │ ├── TilePickService.ts │ │ │ │ └── TileSourceService.ts │ │ │ ├── tile │ │ │ │ ├── DebugTile.ts │ │ │ │ ├── ImageTile.ts │ │ │ │ ├── MaskTile.ts │ │ │ │ ├── RasterRGBTile.ts │ │ │ │ ├── RasterTerrainRGBTile.ts │ │ │ │ ├── RasterTile.ts │ │ │ │ ├── Tile.ts │ │ │ │ ├── VectorTile.ts │ │ │ │ ├── index.ts │ │ │ │ └── util.ts │ │ │ └── utils │ │ │ │ ├── constants.ts │ │ │ │ └── utils.ts │ │ ├── utils │ │ │ ├── blend.ts │ │ │ ├── collision-index.ts │ │ │ ├── extrude_polyline.ts │ │ │ ├── grid-index.ts │ │ │ ├── identityScale.ts │ │ │ ├── load-image.ts │ │ │ ├── multiPassRender.ts │ │ │ ├── polylineNormal.ts │ │ │ ├── rampcolor_legend.ts │ │ │ ├── simpleLine.ts │ │ │ ├── stencil.ts │ │ │ └── symbol-layout.ts │ │ └── wind │ │ │ ├── index.ts │ │ │ ├── models │ │ │ ├── index.ts │ │ │ ├── utils.ts │ │ │ ├── wind.ts │ │ │ ├── windRender.ts │ │ │ └── windShader.ts │ │ │ └── shaders │ │ │ ├── wind_frag.glsl │ │ │ └── wind_vert.glsl │ └── tsconfig.json ├── map │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__ │ │ ├── camera.spec.ts │ │ ├── geo │ │ │ ├── edge_insets.spec.ts │ │ │ ├── lng_lat.spec.ts │ │ │ ├── lng_lat_bounds.spec.ts │ │ │ ├── mercator_coordinate.spec.ts │ │ │ └── transform.spec.ts │ │ ├── handler │ │ │ ├── box_zoom.spec.ts │ │ │ ├── dblclick_zoom.spec.ts │ │ │ ├── drag_pan.spec.ts │ │ │ ├── drag_rotate.spec.ts │ │ │ ├── keyboard.spec.ts │ │ │ ├── map_event.spec.ts │ │ │ ├── mouse_handler_interface.spec.ts │ │ │ ├── mouse_rotate.spec.ts │ │ │ ├── one_finger_touch_drag_handler_interface.spec.ts │ │ │ ├── scroll_zoom.spec.ts │ │ │ ├── tap_drag_zoom.spec.ts │ │ │ └── two_fingers_touch.spec.ts │ │ ├── libs │ │ │ ├── fixed.ts │ │ │ ├── simulate_interaction.ts │ │ │ └── util.ts │ │ ├── map │ │ │ ├── map_animation.spec.ts │ │ │ ├── map_basic.spec.ts │ │ │ ├── map_bounds.spec.ts │ │ │ ├── map_disable_handlers.spec.ts │ │ │ ├── map_events.spec.ts │ │ │ ├── map_is_moving.spec.ts │ │ │ ├── map_is_rotating.spec.ts │ │ │ ├── map_is_zooming.spec.ts │ │ │ ├── map_pitch.spec.ts │ │ │ ├── map_request_render_frame.spec.ts │ │ │ ├── map_resize.spec.ts │ │ │ ├── map_world_copies.spec.ts │ │ │ └── map_zoom.spec.ts │ │ └── util │ │ │ ├── browser.spec.ts │ │ │ ├── evented.spec.ts │ │ │ └── task_queue.spec.ts │ ├── legacy │ │ ├── README.md │ │ ├── camera.ts │ │ ├── css │ │ │ └── l7.css │ │ ├── earthmap.ts │ │ ├── geo │ │ │ ├── edge_insets.ts │ │ │ ├── lng_lat.ts │ │ │ ├── lng_lat_bounds.ts │ │ │ ├── mercator.ts │ │ │ ├── point.ts │ │ │ ├── simple.ts │ │ │ └── transform.ts │ │ ├── handler │ │ │ ├── IHandler.ts │ │ │ ├── blockable_map_event.ts │ │ │ ├── box_zoom.ts │ │ │ ├── click_zoom.ts │ │ │ ├── events │ │ │ │ ├── event.ts │ │ │ │ ├── index.ts │ │ │ │ ├── map_mouse_event.ts │ │ │ │ ├── map_touch_event.ts │ │ │ │ ├── map_wheel_event.ts │ │ │ │ └── render_event.ts │ │ │ ├── handler_inertia.ts │ │ │ ├── handler_manager.ts │ │ │ ├── handler_util.ts │ │ │ ├── keyboard.ts │ │ │ ├── map_event.ts │ │ │ ├── mouse │ │ │ │ ├── index.ts │ │ │ │ ├── mouse_handler.ts │ │ │ │ ├── mousepan_handler.ts │ │ │ │ ├── mousepitch_hander.ts │ │ │ │ ├── mouserotate_hander.ts │ │ │ │ └── util.ts │ │ │ ├── scroll_zoom.ts │ │ │ ├── shim │ │ │ │ ├── dblclick_zoom.ts │ │ │ │ ├── drag_pan.ts │ │ │ │ ├── drag_rotate.ts │ │ │ │ └── touch_zoom_rotate.ts │ │ │ ├── tap │ │ │ │ ├── single_tap_recognizer.ts │ │ │ │ ├── tap_drag_zoom.ts │ │ │ │ ├── tap_recognizer.ts │ │ │ │ └── tap_zoom.ts │ │ │ └── touch │ │ │ │ ├── index.ts │ │ │ │ ├── touch_pan.ts │ │ │ │ ├── touch_pitch.ts │ │ │ │ ├── touch_rotate.ts │ │ │ │ ├── touch_zoom.ts │ │ │ │ └── two_touch.ts │ │ ├── hash.ts │ │ ├── interface.ts │ │ ├── map.ts │ │ ├── util.ts │ │ └── utils │ │ │ ├── Aabb.ts │ │ │ ├── dom.ts │ │ │ ├── performance.ts │ │ │ ├── primitives.ts │ │ │ └── task_queue.ts │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── map │ │ │ ├── camera.ts │ │ │ ├── css │ │ │ └── l7.css │ │ │ ├── events.ts │ │ │ ├── geo │ │ │ ├── edge_insets.ts │ │ │ ├── lng_lat.ts │ │ │ ├── lng_lat_bounds.ts │ │ │ ├── mercator_coordinate.ts │ │ │ └── transform.ts │ │ │ ├── handler │ │ │ ├── box_zoom.ts │ │ │ ├── click_zoom.ts │ │ │ ├── cooperative_gestures.ts │ │ │ ├── drag_handler.ts │ │ │ ├── drag_move_state_manager.ts │ │ │ ├── handler_util.ts │ │ │ ├── keyboard.ts │ │ │ ├── map_event.ts │ │ │ ├── mouse.ts │ │ │ ├── one_finger_touch_drag.ts │ │ │ ├── scroll_zoom.ts │ │ │ ├── shim │ │ │ │ ├── dblclick_zoom.ts │ │ │ │ ├── drag_pan.ts │ │ │ │ ├── drag_rotate.ts │ │ │ │ └── two_fingers_touch.ts │ │ │ ├── tap_drag_zoom.ts │ │ │ ├── tap_recognizer.ts │ │ │ ├── tap_zoom.ts │ │ │ ├── touch_pan.ts │ │ │ ├── transform-provider.ts │ │ │ └── two_fingers_touch.ts │ │ │ ├── handler_inertia.ts │ │ │ ├── handler_manager.ts │ │ │ ├── map.ts │ │ │ └── util │ │ │ ├── abort_error.ts │ │ │ ├── browser.ts │ │ │ ├── dom.ts │ │ │ ├── evented.ts │ │ │ ├── task_queue.ts │ │ │ └── util.ts │ ├── style.d.ts │ └── tsconfig.json ├── maps │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── __tests__ │ │ └── map.spec.ts │ ├── package.json │ ├── src │ │ ├── amap-next │ │ │ ├── index.ts │ │ │ ├── logo.css │ │ │ ├── map.ts │ │ │ └── theme.ts │ │ ├── bmap │ │ │ ├── bmapglloader.ts │ │ │ ├── index.ts │ │ │ ├── logo.css │ │ │ └── map.ts │ │ ├── earth │ │ │ ├── Viewport.ts │ │ │ ├── index.ts │ │ │ ├── map.ts │ │ │ └── theme.ts │ │ ├── gmap │ │ │ ├── index.ts │ │ │ ├── logo.css │ │ │ ├── map.ts │ │ │ └── maploader.ts │ │ ├── index.ts │ │ ├── lib │ │ │ ├── base-map.ts │ │ │ └── web-mercator-viewport.ts │ │ ├── map │ │ │ ├── index.ts │ │ │ ├── map.ts │ │ │ └── theme.ts │ │ ├── mapbox │ │ │ ├── index.ts │ │ │ ├── logo.css │ │ │ ├── map.ts │ │ │ └── theme.ts │ │ ├── maplibre │ │ │ ├── index.ts │ │ │ └── map.ts │ │ ├── tdtmap │ │ │ ├── index.ts │ │ │ ├── logo.css │ │ │ ├── map.ts │ │ │ └── maploader.ts │ │ ├── tmap │ │ │ ├── index.ts │ │ │ ├── logo.css │ │ │ ├── map.ts │ │ │ └── maploader.ts │ │ ├── types.ts │ │ └── utils │ │ │ ├── BaseMapService.ts │ │ │ ├── BaseMapWrapper.ts │ │ │ ├── index.ts │ │ │ ├── simpleMapCoord.ts │ │ │ ├── theme.ts │ │ │ └── utils.ts │ ├── style.d.ts │ └── tsconfig.json ├── renderer │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── __tests__ │ │ └── index.spec.ts │ ├── glsl.d.ts │ ├── package.json │ ├── src │ │ ├── device │ │ │ ├── DeviceAttribute.ts │ │ │ ├── DeviceBuffer.ts │ │ │ ├── DeviceCache.ts │ │ │ ├── DeviceElements.ts │ │ │ ├── DeviceFramebuffer.ts │ │ │ ├── DeviceModel.ts │ │ │ ├── DeviceTexture2D.ts │ │ │ ├── constants.ts │ │ │ ├── index.ts │ │ │ └── utils │ │ │ │ ├── HashMap.ts │ │ │ │ ├── pipeline.ts │ │ │ │ ├── typedarray.ts │ │ │ │ └── webgl.ts │ │ ├── index.ts │ │ └── regl │ │ │ ├── ReglAttribute.ts │ │ │ ├── ReglBuffer.ts │ │ │ ├── ReglElements.ts │ │ │ ├── ReglFramebuffer.ts │ │ │ ├── ReglModel.ts │ │ │ ├── ReglRenderbuffer.ts │ │ │ ├── ReglTexture2D.ts │ │ │ ├── constants.ts │ │ │ └── index.ts │ └── tsconfig.json ├── scene │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── __tests__ │ │ ├── index.spec.ts │ │ └── l7_map.spec.ts │ ├── package.json │ ├── src │ │ ├── ILayerManager.ts │ │ ├── IMapController.ts │ │ ├── IPostProcessingPassPluggable.ts │ │ ├── boxSelect.ts │ │ └── index.ts │ └── tsconfig.json ├── source │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── __tests__ │ │ ├── data │ │ │ ├── csv.ts │ │ │ ├── json.ts │ │ │ ├── multiLine.ts │ │ │ ├── multipolygon.ts │ │ │ ├── point.ts │ │ │ └── polygon.ts │ │ ├── parser │ │ │ ├── csv.spec.ts │ │ │ ├── geojson.spec.ts │ │ │ └── json.spec.ts │ │ ├── source.spec.ts │ │ └── utils │ │ │ └── statistics.spec.ts │ ├── package.json │ ├── src │ │ ├── factory.ts │ │ ├── index.ts │ │ ├── interface.ts │ │ ├── parser │ │ │ ├── csv.ts │ │ │ ├── geojson.ts │ │ │ ├── geojsonvt.ts │ │ │ ├── image.ts │ │ │ ├── json.ts │ │ │ ├── jsonTile.ts │ │ │ ├── mvt.ts │ │ │ ├── raster-tile.ts │ │ │ ├── raster.ts │ │ │ ├── raster │ │ │ │ ├── ndi.ts │ │ │ │ └── rgb.ts │ │ │ ├── rasterRgb.ts │ │ │ └── testTile.ts │ │ ├── source.ts │ │ ├── source │ │ │ ├── baseSource.ts │ │ │ ├── geojsonvt.ts │ │ │ ├── index.ts │ │ │ └── vector.ts │ │ ├── transform │ │ │ ├── cluster.ts │ │ │ ├── filter.ts │ │ │ ├── grid.ts │ │ │ ├── hexagon.ts │ │ │ ├── join.ts │ │ │ └── map.ts │ │ └── utils │ │ │ ├── bandOperation │ │ │ ├── bands.ts │ │ │ ├── math.ts │ │ │ └── operationSchema.ts │ │ │ ├── statistics.ts │ │ │ ├── tile │ │ │ ├── getCustomData.ts │ │ │ ├── getRasterData.ts │ │ │ ├── getRasterTile.ts │ │ │ └── request.ts │ │ │ └── util.ts │ └── tsconfig.json ├── test-utils │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── gl-context.ts │ │ ├── index.ts │ │ └── test-scene.ts │ └── tsconfig.json ├── three │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── core │ │ │ ├── baseLayer.ts │ │ │ ├── threeRender.ts │ │ │ └── threeRenderService.ts │ │ └── index.ts │ └── tsconfig.json └── utils │ ├── .fatherrc.ts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── __tests__ │ ├── geo.spec.ts │ ├── lineAtOffset.spec.ts │ └── statistic.spec.ts │ ├── package.json │ ├── src │ ├── ajax.ts │ ├── anchor.ts │ ├── color.ts │ ├── config.ts │ ├── dom.ts │ ├── env.ts │ ├── event.ts │ ├── geo.ts │ ├── hash.ts │ ├── index.ts │ ├── lineAtOffset │ │ ├── arc.ts │ │ ├── greatCircle.ts │ │ ├── index.ts │ │ ├── interface.ts │ │ └── line.ts │ ├── lodash-adapter.ts │ ├── lru_cache.ts │ ├── math.ts │ ├── statistics.ts │ └── tileset-manager │ │ ├── const.ts │ │ ├── index.ts │ │ ├── tile.ts │ │ ├── tileset-manager.ts │ │ ├── types.ts │ │ └── utils │ │ ├── bound-buffer.ts │ │ ├── lonlat-tile.ts │ │ ├── strategies.ts │ │ └── tile-url.ts │ └── tsconfig.json ├── pnpm-workspace.yaml ├── scripts ├── clean-deps.sh ├── cloc-code.sh ├── eslint-fix.sh ├── eslint-lint.sh ├── format-check.sh ├── format-fix.sh └── intranet-sync.sh ├── site ├── .dumi │ ├── global.ts │ ├── less.d.ts │ ├── pages │ │ ├── 404.tsx │ │ ├── Example │ │ │ ├── index.module.less │ │ │ ├── index.tsx │ │ │ └── utils.ts │ │ ├── Examples │ │ │ ├── components │ │ │ │ ├── GalleryPageContent │ │ │ │ │ ├── DemoCard │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── SelectExampleBar │ │ │ │ │ ├── index.module.less │ │ │ │ │ └── index.tsx │ │ │ ├── index.module.less │ │ │ ├── index.tsx │ │ │ └── types.ts │ │ ├── custom │ │ │ ├── demo │ │ │ │ ├── bianjie.tsx │ │ │ │ ├── bianjieview.tsx │ │ │ │ ├── china.tsx │ │ │ │ ├── city.tsx │ │ │ │ └── zhejiang.tsx │ │ │ ├── docs │ │ │ │ ├── app.md │ │ │ │ ├── sdk.md │ │ │ │ └── service.md │ │ │ └── tools │ │ │ │ ├── app.tsx │ │ │ │ ├── index.md │ │ │ │ ├── index.tsx │ │ │ │ ├── map.tsx │ │ │ │ ├── sdk.tsx │ │ │ │ ├── service.tsx │ │ │ │ └── worldmap.tsx │ │ └── tools │ │ │ ├── index.md │ │ │ └── index.tsx │ ├── theme │ │ ├── plugin.ts │ │ └── slots │ │ │ ├── CodePreview │ │ │ ├── CodeHeader.module.less │ │ │ ├── CodeHeader.tsx │ │ │ ├── index.module.less │ │ │ └── index.tsx │ │ │ ├── CodeRunner │ │ │ ├── index.module.less │ │ │ ├── index.tsx │ │ │ └── utils.ts │ │ │ ├── GithubButtonBar.tsx │ │ │ └── ManualContent │ │ │ ├── index.module.less │ │ │ ├── index.tsx │ │ │ └── utils.ts │ └── tsconfig.json ├── .dumirc.ts ├── .gitignore ├── .prettierignore ├── CHANGELOG.md ├── README.md ├── docs │ ├── CNAME │ ├── api │ │ ├── base_layer │ │ │ ├── base.en.md │ │ │ └── base.zh.md │ │ ├── common │ │ │ ├── control │ │ │ │ ├── api.en.md │ │ │ │ ├── api.zh.md │ │ │ │ ├── btn-api.en.md │ │ │ │ ├── btn-api.zh.md │ │ │ │ ├── event.en.md │ │ │ │ ├── event.zh.md │ │ │ │ ├── method.en.md │ │ │ │ ├── method.zh.md │ │ │ │ ├── popper-api.en.md │ │ │ │ ├── popper-api.zh.md │ │ │ │ ├── popper-event.en.md │ │ │ │ ├── popper-event.zh.md │ │ │ │ ├── select-event.en.md │ │ │ │ └── select-event.zh.md │ │ │ ├── district │ │ │ │ ├── bubble.zh.md │ │ │ │ ├── choropleth.zh.md │ │ │ │ ├── event.zh.md │ │ │ │ ├── fill.zh.md │ │ │ │ ├── label.zh.md │ │ │ │ ├── option.zh.md │ │ │ │ └── popup.zh.md │ │ │ ├── features │ │ │ │ ├── animate.en.md │ │ │ │ ├── animate.zh.md │ │ │ │ ├── border.en.md │ │ │ │ ├── border.zh.md │ │ │ │ ├── dash.en.md │ │ │ │ ├── dash.zh.md │ │ │ │ ├── linear.en.md │ │ │ │ ├── linear.zh.md │ │ │ │ ├── segment_number.en.md │ │ │ │ ├── segment_number.zh.md │ │ │ │ ├── texture.en.md │ │ │ │ ├── texture.zh.md │ │ │ │ ├── theta_offset.en.md │ │ │ │ ├── theta_offset.zh.md │ │ │ │ ├── vertex_height.en.md │ │ │ │ └── vertex_height.zh.md │ │ │ ├── layer │ │ │ │ ├── base.en.md │ │ │ │ ├── base.zh.md │ │ │ │ ├── color.en.md │ │ │ │ ├── color.zh.md │ │ │ │ ├── layer_ctr.en.md │ │ │ │ ├── layer_ctr.zh.md │ │ │ │ ├── layer_encode.en.md │ │ │ │ ├── layer_encode.zh.md │ │ │ │ ├── layer_event.en.md │ │ │ │ ├── layer_event.zh.md │ │ │ │ ├── layer_interaction.en.md │ │ │ │ ├── layer_interaction.zh.md │ │ │ │ ├── layer_style.en.md │ │ │ │ ├── layer_style.zh.md │ │ │ │ ├── layer_texture.en.md │ │ │ │ ├── layer_texture.zh.md │ │ │ │ ├── layer_update.en.md │ │ │ │ ├── layer_update.zh.md │ │ │ │ ├── mask_method.en.md │ │ │ │ ├── mask_method.zh.md │ │ │ │ ├── mask_options.en.md │ │ │ │ ├── mask_options.zh.md │ │ │ │ ├── mouse_event.en.md │ │ │ │ ├── mouse_event.zh.md │ │ │ │ ├── options.en.md │ │ │ │ ├── options.zh.md │ │ │ │ ├── raster │ │ │ │ │ ├── rampcolors.en.md │ │ │ │ │ ├── rampcolors.zh.md │ │ │ │ │ ├── style.en.md │ │ │ │ │ ├── style.zh.md │ │ │ │ │ ├── style_single.en.md │ │ │ │ │ └── style_single.zh.md │ │ │ │ ├── scale.en.md │ │ │ │ ├── scale.zh.md │ │ │ │ ├── source.en.md │ │ │ │ ├── source.zh.md │ │ │ │ ├── style_encode.en.md │ │ │ │ └── style_encode.zh.md │ │ │ ├── map.en.md │ │ │ ├── map.zh.md │ │ │ ├── source │ │ │ │ ├── raster │ │ │ │ │ ├── raster_band_calc.en.md │ │ │ │ │ ├── raster_band_calc.zh.md │ │ │ │ │ ├── raster_data.en.md │ │ │ │ │ ├── raster_data.zh.md │ │ │ │ │ ├── raster_multi.en.md │ │ │ │ │ ├── raster_multi.zh.md │ │ │ │ │ ├── raster_ndi.en.md │ │ │ │ │ ├── raster_ndi.zh.md │ │ │ │ │ ├── raster_rgb.en.md │ │ │ │ │ └── raster_rgb.zh.md │ │ │ │ └── tile │ │ │ │ │ ├── method.en.md │ │ │ │ │ └── method.zh.md │ │ │ └── style.md │ │ ├── component │ │ │ ├── component.zh.md │ │ │ ├── control.en.md │ │ │ ├── control.zh.md │ │ │ ├── export-image.en.md │ │ │ ├── export-image.zh.md │ │ │ ├── fullscreen.en.md │ │ │ ├── fullscreen.zh.md │ │ │ ├── geolocate.en.md │ │ │ ├── geolocate.zh.md │ │ │ ├── layer_popup.en.md │ │ │ ├── layer_popup.zh.md │ │ │ ├── layer_switch.en.md │ │ │ ├── layer_switch.zh.md │ │ │ ├── logo.en.md │ │ │ ├── logo.zh.md │ │ │ ├── map_theme.en.md │ │ │ ├── map_theme.zh.md │ │ │ ├── marker.en.md │ │ │ ├── marker.zh.md │ │ │ ├── marker_layer.en.md │ │ │ ├── marker_layer.zh.md │ │ │ ├── mouse_location.en.md │ │ │ ├── mouse_location.zh.md │ │ │ ├── popup.en.md │ │ │ ├── popup.zh.md │ │ │ ├── scale.en.md │ │ │ ├── scale.zh.md │ │ │ ├── swipe.en.md │ │ │ ├── swipe.zh.md │ │ │ ├── zoom.en.md │ │ │ └── zoom.zh.md │ │ ├── debug │ │ │ ├── debugservice.en.md │ │ │ └── debugservice.zh.md │ │ ├── experiment │ │ │ ├── earth.en.md │ │ │ ├── earth.zh.md │ │ │ ├── flyline.en.md │ │ │ ├── flyline.zh.md │ │ │ ├── pass.en.md │ │ │ ├── pass.zh.md │ │ │ ├── point.en.md │ │ │ ├── point.zh.md │ │ │ ├── simple_coordinates.en.md │ │ │ ├── simple_coordinates.zh.md │ │ │ ├── three.en.md │ │ │ ├── three.zh.md │ │ │ ├── wind.en.md │ │ │ └── wind.zh.md │ │ ├── heatmap_layer │ │ │ ├── heatmap.en.md │ │ │ ├── heatmap.zh.md │ │ │ ├── options.en.md │ │ │ ├── options.zh.md │ │ │ ├── scale.en.md │ │ │ ├── scale.zh.md │ │ │ ├── shape.en.md │ │ │ ├── shape.zh.md │ │ │ ├── source.en.md │ │ │ ├── source.zh.md │ │ │ ├── style.en.md │ │ │ └── style.zh.md │ │ ├── image_layer │ │ │ ├── imagelayer.en.md │ │ │ ├── imagelayer.zh.md │ │ │ ├── options.en.md │ │ │ ├── options.zh.md │ │ │ ├── source.en.md │ │ │ ├── source.zh.md │ │ │ ├── style.en.md │ │ │ └── style.zh.md │ │ ├── line_layer │ │ │ ├── animate.en.md │ │ │ ├── animate.zh.md │ │ │ ├── color.en.md │ │ │ ├── color.zh.md │ │ │ ├── linelayer.en.md │ │ │ ├── linelayer.zh.md │ │ │ ├── options.en.md │ │ │ ├── options.zh.md │ │ │ ├── scale.en.md │ │ │ ├── scale.zh.md │ │ │ ├── shape.en.md │ │ │ ├── shape.zh.md │ │ │ ├── size.en.md │ │ │ ├── size.zh.md │ │ │ ├── source.en.md │ │ │ ├── source.zh.md │ │ │ ├── style.en.md │ │ │ ├── style.zh.md │ │ │ ├── texture.en.md │ │ │ └── texture.zh.md │ │ ├── map │ │ │ ├── bmap.en.md │ │ │ ├── bmap.zh.md │ │ │ ├── gaode.en.md │ │ │ ├── gaode.zh.md │ │ │ ├── leaflet.en.md │ │ │ ├── leaflet.zh.md │ │ │ ├── map.en.md │ │ │ ├── map.zh.md │ │ │ ├── mapbox.en.md │ │ │ ├── mapbox.zh.md │ │ │ ├── maplibre.en.md │ │ │ ├── maplibre.zh.md │ │ │ ├── tencent.en.md │ │ │ ├── tencent.zh.md │ │ │ ├── tianditu.en.md │ │ │ └── tianditu.zh.md │ │ ├── other │ │ │ ├── canvas.en.md │ │ │ ├── canvas.zh.md │ │ │ ├── city_building.en.md │ │ │ ├── city_building.zh.md │ │ │ ├── plane.en.md │ │ │ ├── plane.zh.md │ │ │ ├── sprite.en.md │ │ │ └── sprite.zh.md │ │ ├── point_layer │ │ │ ├── animate.en.md │ │ │ ├── animate.zh.md │ │ │ ├── color.en.md │ │ │ ├── color.zh.md │ │ │ ├── options.en.md │ │ │ ├── options.zh.md │ │ │ ├── pointlayer.en.md │ │ │ ├── pointlayer.zh.md │ │ │ ├── scale.en.md │ │ │ ├── scale.zh.md │ │ │ ├── shape.en.md │ │ │ ├── shape.zh.md │ │ │ ├── size.en.md │ │ │ ├── size.zh.md │ │ │ ├── source.en.md │ │ │ ├── source.zh.md │ │ │ ├── style.en.md │ │ │ └── style.zh.md │ │ ├── polygon_layer │ │ │ ├── animate.en.md │ │ │ ├── animate.zh.md │ │ │ ├── color.en.md │ │ │ ├── color.zh.md │ │ │ ├── options.en.md │ │ │ ├── options.zh.md │ │ │ ├── polygonlayer.en.md │ │ │ ├── polygonlayer.zh.md │ │ │ ├── scale.en.md │ │ │ ├── scale.zh.md │ │ │ ├── shape.en.md │ │ │ ├── shape.zh.md │ │ │ ├── size.en.md │ │ │ ├── size.zh.md │ │ │ ├── source.en.md │ │ │ ├── source.zh.md │ │ │ ├── style.en.md │ │ │ └── style.zh.md │ │ ├── raster_layer │ │ │ ├── options.en.md │ │ │ ├── options.zh.md │ │ │ ├── raster.en.md │ │ │ ├── raster.zh.md │ │ │ ├── raster_data.en.md │ │ │ ├── raster_data.zh.md │ │ │ ├── raster_ndi.en.md │ │ │ ├── raster_ndi.zh.md │ │ │ ├── raster_rgb.en.md │ │ │ └── raster_rgb.zh.md │ │ ├── react │ │ │ ├── react.en.md │ │ │ └── react.zh.md │ │ ├── scene.en.md │ │ ├── scene.zh.md │ │ ├── source │ │ │ ├── csv.en.md │ │ │ ├── csv.zh.md │ │ │ ├── geojson.en.md │ │ │ ├── geojson.zh.md │ │ │ ├── image.en.md │ │ │ ├── image.zh.md │ │ │ ├── json.en.md │ │ │ ├── json.zh.md │ │ │ ├── mvt.en.md │ │ │ ├── mvt.zh.md │ │ │ ├── raster.en.md │ │ │ ├── raster.zh.md │ │ │ ├── raster_ndi.en.md │ │ │ ├── raster_ndi.zh.md │ │ │ ├── raster_rgb.en.md │ │ │ ├── raster_rgb.zh.md │ │ │ ├── raster_tile.en.md │ │ │ ├── raster_tile.zh.md │ │ │ ├── source.en.md │ │ │ └── source.zh.md │ │ └── tile │ │ │ ├── common │ │ │ ├── options.en.md │ │ │ ├── options.zh.md │ │ │ ├── style.en.md │ │ │ └── style.zh.md │ │ │ ├── geojsonvt_tile_layer.en.md │ │ │ ├── geojsonvt_tile_layer.zh.md │ │ │ ├── raster_tile_layer.en.md │ │ │ ├── raster_tile_layer.zh.md │ │ │ ├── tile_debug_layer.en.md │ │ │ ├── tile_debug_layer.zh.md │ │ │ ├── vector_tile_layer.en.md │ │ │ └── vector_tile_layer.zh.md │ └── tutorial │ │ ├── FAQ.en.md │ │ ├── FAQ.zh.md │ │ ├── data.en.md │ │ ├── data.zh.md │ │ ├── demo.en.md │ │ ├── demo.zh.md │ │ ├── develop.en.md │ │ ├── develop.zh.md │ │ ├── heatmap │ │ ├── grid.en.md │ │ ├── grid.zh.md │ │ ├── hexagon.en.md │ │ ├── hexagon.zh.md │ │ ├── normal.en.md │ │ └── normal.zh.md │ │ ├── interactive │ │ ├── hightlight.en.md │ │ └── hightlight.zh.md │ │ ├── l7.en.md │ │ ├── l7.zh.md │ │ ├── line │ │ ├── arc.en.md │ │ ├── arc.zh.md │ │ ├── arc3d.en.md │ │ ├── arc3d.zh.md │ │ ├── greatcircle.en.md │ │ ├── greatcircle.zh.md │ │ ├── path.en.md │ │ ├── path.zh.md │ │ ├── simple.en.md │ │ ├── simple.zh.md │ │ ├── wall.en.md │ │ └── wall.zh.md │ │ ├── map │ │ ├── amap.en.md │ │ ├── amap.zh.md │ │ ├── amapplugin.en.md │ │ ├── amapplugin.zh.md │ │ ├── blankmap.en.md │ │ ├── blankmap.zh.md │ │ ├── leaflet.en.md │ │ ├── leaflet.zh.md │ │ ├── mapbox.en.md │ │ ├── mapbox.zh.md │ │ ├── offline.en.md │ │ ├── offline.zh.md │ │ ├── tianditu.en.md │ │ └── tianditu.zh.md │ │ ├── monitor │ │ ├── layer_init.en.md │ │ ├── layer_init.zh.md │ │ ├── map_init.en.md │ │ ├── map_init.zh.md │ │ ├── render.en.md │ │ └── render.zh.md │ │ ├── point │ │ ├── bubble.en.md │ │ ├── bubble.zh.md │ │ ├── chart.en.md │ │ ├── chart.zh.md │ │ ├── cluster.en.md │ │ ├── cluster.zh.md │ │ ├── column.en.md │ │ ├── column.zh.md │ │ ├── dot.en.md │ │ ├── dot.zh.md │ │ ├── iconfont.en.md │ │ ├── iconfont.zh.md │ │ ├── mark.en.md │ │ ├── mark.zh.md │ │ ├── radar.en.md │ │ ├── radar.zh.md │ │ ├── scatter.en.md │ │ ├── scatter.zh.md │ │ ├── simple.en.md │ │ ├── simple.zh.md │ │ ├── symbol.en.md │ │ ├── symbol.zh.md │ │ ├── text.en.md │ │ ├── text.zh.md │ │ ├── wave.en.md │ │ └── wave.zh.md │ │ ├── polygon │ │ ├── extrude.en.md │ │ ├── extrude.zh.md │ │ ├── fill.en.md │ │ ├── fill.zh.md │ │ ├── water.en.md │ │ └── water.zh.md │ │ ├── quick_issue.en.md │ │ ├── quick_issue.zh.md │ │ ├── quickstart.en.md │ │ ├── quickstart.zh.md │ │ ├── scale.en.md │ │ ├── scale.zh.md │ │ └── tile │ │ ├── raster_tile.en.md │ │ ├── raster_tile.zh.md │ │ ├── tile.en.md │ │ ├── tile.zh.md │ │ ├── vector_tile.en.md │ │ └── vector_tile.zh.md ├── examples │ ├── amap-plugin │ │ └── bus │ │ │ ├── demo │ │ │ ├── busstop.js │ │ │ ├── meta.json │ │ │ ├── satellite.js │ │ │ └── xyztile.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── choropleth │ │ └── administrative │ │ │ ├── delete │ │ │ ├── administrative-switch.tsx │ │ │ ├── china-city.ts │ │ │ ├── china-map.ts │ │ │ └── world-map.ts │ │ │ ├── demo │ │ │ ├── hangzhou-city.ts │ │ │ ├── meta.json │ │ │ ├── xihu-district.ts │ │ │ ├── zhejiang-province-district.ts │ │ │ └── zhejiang-province.ts │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── component │ │ ├── control │ │ │ ├── demo │ │ │ │ ├── exportimage.ts │ │ │ │ ├── fullscreen.ts │ │ │ │ ├── geolocate.ts │ │ │ │ ├── layerswitch.ts │ │ │ │ ├── layerswitch1.ts │ │ │ │ ├── logo.ts │ │ │ │ ├── maptheme.ts │ │ │ │ ├── meta.json │ │ │ │ ├── mouselocation.ts │ │ │ │ ├── scale.ts │ │ │ │ ├── swipe.ts │ │ │ │ ├── syncScene.ts │ │ │ │ └── zoom.ts │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── marker │ │ │ ├── demo │ │ │ │ ├── clustermarker.js │ │ │ │ ├── defaultmarker.js │ │ │ │ ├── marker.js │ │ │ │ ├── markerlayer.js │ │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ └── popup │ │ │ ├── demo │ │ │ ├── customContent.ts │ │ │ ├── layerpopup.ts │ │ │ ├── meta.json │ │ │ ├── popup.ts │ │ │ └── popup2.ts │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── composite-layers │ │ └── l7plot │ │ │ ├── demo │ │ │ ├── flow-layer.js │ │ │ ├── icon-layer.js │ │ │ ├── image-layer.js │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── draw │ │ ├── basic │ │ │ ├── demo │ │ │ │ ├── draw_circle.js │ │ │ │ ├── draw_line.js │ │ │ │ ├── draw_point.js │ │ │ │ ├── draw_polygon.js │ │ │ │ ├── draw_rect.js │ │ │ │ └── meta.json │ │ │ ├── design.en.md │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ └── control │ │ │ ├── demo │ │ │ ├── amap.js │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── earth │ │ └── arc3d │ │ │ ├── demo │ │ │ ├── flyline.js │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── engine │ │ └── three │ │ │ ├── demo │ │ │ ├── amap_ant.js │ │ │ ├── basic_geometry.js │ │ │ ├── meta.json │ │ │ └── space_click.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── gallery │ │ ├── animate │ │ │ ├── delete │ │ │ │ ├── amap_car.js │ │ │ │ ├── box_select.js │ │ │ │ ├── plane_animate.js │ │ │ │ ├── route_line.js │ │ │ │ └── wind.js │ │ │ ├── demo │ │ │ │ ├── 3d_base_map.js │ │ │ │ ├── animate_path_texture.js │ │ │ │ ├── build_sweep.js │ │ │ │ ├── grid.js │ │ │ │ ├── meta.json │ │ │ │ └── turin.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── basic │ │ │ ├── demo │ │ │ │ ├── arc-circle.js │ │ │ │ ├── bus_dark.js │ │ │ │ ├── column_dark.js │ │ │ │ ├── light.js │ │ │ │ ├── meta.json │ │ │ │ ├── normal.js │ │ │ │ ├── province_map.ts │ │ │ │ └── swipe.ts │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ └── story │ │ │ ├── demo │ │ │ ├── gaza.js │ │ │ ├── meta.json │ │ │ ├── yidaiyilu.js │ │ │ └── yidaiyilu2.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── geometry │ │ └── geometry │ │ │ ├── demo │ │ │ ├── meta.json │ │ │ ├── plane.js │ │ │ ├── rain.js │ │ │ ├── snow.js │ │ │ └── terrain.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── heatmap │ │ ├── grid │ │ │ ├── demo │ │ │ │ ├── china.js │ │ │ │ ├── grid_world.js │ │ │ │ ├── heatmap3.js │ │ │ │ ├── meta.json │ │ │ │ └── world.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── heatmap │ │ │ ├── demo │ │ │ │ ├── heatmap.js │ │ │ │ ├── heatmap3d.js │ │ │ │ ├── heatmap_purple.js │ │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ └── hexagon │ │ │ ├── demo │ │ │ ├── china.js │ │ │ ├── hexagon.js │ │ │ ├── light.js │ │ │ ├── meta.json │ │ │ └── world.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── line │ │ ├── animate │ │ │ ├── demo │ │ │ │ ├── animate_line.js │ │ │ │ ├── line_animate.js │ │ │ │ ├── meta.json │ │ │ │ ├── plane_animate2.js │ │ │ │ ├── trip_animate.js │ │ │ │ └── wind_animate.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── arc │ │ │ ├── demo │ │ │ │ ├── arc_circle.js │ │ │ │ ├── meta.json │ │ │ │ ├── trip_arc.js │ │ │ │ ├── trip_arc_dark.js │ │ │ │ └── trip_arc_dark_linear.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── flow │ │ │ ├── demo │ │ │ │ ├── flow.ts │ │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── isoline │ │ │ ├── demo │ │ │ │ ├── ele.js │ │ │ │ ├── ele_dark.js │ │ │ │ ├── height.js │ │ │ │ ├── isoline.js │ │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── path │ │ │ ├── demo │ │ │ │ ├── bus_dark.js │ │ │ │ ├── bus_light.js │ │ │ │ ├── line_blur.js │ │ │ │ ├── meta.json │ │ │ │ ├── road_dark.js │ │ │ │ ├── road_dark_dash.js │ │ │ │ └── shanghai_bus.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ └── wall │ │ │ ├── demo │ │ │ ├── bus_wall.js │ │ │ ├── hangzhou_wall.js │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── map │ │ └── map │ │ │ ├── demo │ │ │ ├── amapInstance.js │ │ │ ├── baidumap.js │ │ │ ├── bmapInstance.js │ │ │ ├── gaodemap.js │ │ │ ├── mapbox.js │ │ │ ├── maplibre.js │ │ │ ├── meta.json │ │ │ ├── tencentmap.js │ │ │ ├── tianditu.js │ │ │ └── tmapInstance.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── mask │ │ └── basic │ │ │ ├── demo │ │ │ ├── heatmap.ts │ │ │ ├── meta.json │ │ │ ├── multi_mask_and.ts │ │ │ ├── multi_mask_or.ts │ │ │ ├── multi_mask_or_not.ts │ │ │ ├── raster.ts │ │ │ ├── raster_point.ts │ │ │ ├── raster_polygon.js │ │ │ ├── raster_vector.ts │ │ │ ├── rastertile_raster.ts │ │ │ └── vector_polygon.ts │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── point │ │ ├── bubble │ │ │ ├── demo │ │ │ │ ├── color.js │ │ │ │ ├── meta.json │ │ │ │ ├── point.js │ │ │ │ ├── scatter.js │ │ │ │ └── world.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── chart │ │ │ ├── demo │ │ │ │ ├── bar.js │ │ │ │ ├── chart.js │ │ │ │ ├── custom.js │ │ │ │ ├── custom2.js │ │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── cluster │ │ │ ├── demo │ │ │ │ ├── cluster.js │ │ │ │ ├── cluster2.js │ │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── column │ │ │ ├── demo │ │ │ │ ├── clumn_shape.js │ │ │ │ ├── column_dark.js │ │ │ │ ├── column_light.js │ │ │ │ ├── column_linear.js │ │ │ │ └── meta.json │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── dot │ │ │ ├── demo │ │ │ │ ├── meta.json │ │ │ │ ├── normal.js │ │ │ │ └── normal2.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── image │ │ │ ├── demo │ │ │ │ ├── image.js │ │ │ │ ├── locate.js │ │ │ │ ├── meta.json │ │ │ │ ├── monsoon.js │ │ │ │ └── weather.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── scatter │ │ │ ├── demo │ │ │ │ ├── animatepoint.js │ │ │ │ ├── blur.js │ │ │ │ ├── meta.json │ │ │ │ ├── radarpoint.js │ │ │ │ ├── scatter.js │ │ │ │ └── scatter_style_map.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── simple │ │ │ ├── demo │ │ │ │ ├── meta.json │ │ │ │ └── simple.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ └── text │ │ │ ├── demo │ │ │ ├── iconfont.js │ │ │ ├── iconfonts.js │ │ │ ├── meta.json │ │ │ ├── point_text.js │ │ │ ├── polygon_text.js │ │ │ ├── simplecoordinate.js │ │ │ ├── style_map.js │ │ │ └── temperture.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── polygon │ │ ├── 3d │ │ │ ├── demo │ │ │ │ ├── floatmap.js │ │ │ │ ├── meta.json │ │ │ │ ├── polygon.js │ │ │ │ └── polygon_stylemap.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── extrusion │ │ │ ├── demo │ │ │ │ ├── meta.json │ │ │ │ └── polygon.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ └── fill │ │ │ ├── demo │ │ │ ├── fill.js │ │ │ ├── linear_in.js │ │ │ ├── linear_out.js │ │ │ ├── meta.json │ │ │ ├── ocean.js │ │ │ ├── usa.js │ │ │ └── water.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── raster │ │ ├── data │ │ │ ├── demo │ │ │ │ ├── aqi.js │ │ │ │ ├── dem.js │ │ │ │ ├── dem_quantize.js │ │ │ │ ├── light.js │ │ │ │ ├── light_default.js │ │ │ │ ├── meta.json │ │ │ │ └── temp.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── image │ │ │ ├── data │ │ │ │ └── ndviundefined.be75.tif │ │ │ ├── demo │ │ │ │ ├── image-coord.js │ │ │ │ ├── image.js │ │ │ │ ├── meta.json │ │ │ │ └── radar.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── ndi │ │ │ ├── demo │ │ │ │ ├── meta.json │ │ │ │ ├── ndbi.ts │ │ │ │ ├── ndvi.ts │ │ │ │ └── ndwi.ts │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ └── rgb │ │ │ ├── demo │ │ │ ├── 432.ts │ │ │ ├── 543.ts │ │ │ ├── meta.json │ │ │ ├── multfile.ts │ │ │ └── rgb.ts │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ ├── tile │ │ ├── basemap │ │ │ ├── demo │ │ │ │ ├── amap-normal.js │ │ │ │ ├── amap-satellite.js │ │ │ │ ├── amap-satelliteMask.js │ │ │ │ ├── debug.ts │ │ │ │ ├── dem.ts │ │ │ │ ├── mask.ts │ │ │ │ ├── meta.json │ │ │ │ ├── normal.ts │ │ │ │ ├── raster.ts │ │ │ │ ├── terrain.ts │ │ │ │ ├── wms.ts │ │ │ │ └── wmts.ts │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ ├── raster │ │ │ ├── demo │ │ │ │ ├── lerc.js │ │ │ │ ├── meta.json │ │ │ │ ├── terrain.ts │ │ │ │ └── tiff.js │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ │ └── vector │ │ │ ├── demo │ │ │ ├── chinadistrictmap.ts │ │ │ ├── chinamap.ts │ │ │ ├── data.ts │ │ │ ├── debug.ts │ │ │ ├── farmland.ts │ │ │ ├── geojson-vt.ts │ │ │ ├── meta.json │ │ │ ├── pmtiles.ts │ │ │ ├── point.ts │ │ │ ├── polygon.ts │ │ │ ├── simple-line.ts │ │ │ ├── text.ts │ │ │ └── worldmap.ts │ │ │ ├── index.en.md │ │ │ └── index.zh.md │ └── tutorial │ │ ├── control │ │ ├── demo │ │ │ ├── amap.js │ │ │ └── meta.json │ │ ├── index.en.md │ │ └── index.zh.md │ │ ├── layer │ │ ├── demo │ │ │ ├── layer_boxselect.js │ │ │ ├── layer_highlight.js │ │ │ └── meta.json │ │ ├── index.en.md │ │ └── index.zh.md │ │ └── marker │ │ ├── demo │ │ ├── amap.js │ │ └── meta.json │ │ ├── index.en.md │ │ └── index.zh.md ├── maptools │ ├── component │ │ ├── DataTab.tsx │ │ ├── Features │ │ │ └── index.tsx │ │ ├── Header │ │ │ └── index.tsx │ │ ├── Hero │ │ │ └── index.tsx │ │ ├── IFrame │ │ │ └── index.tsx │ │ ├── Logo │ │ │ ├── index.less │ │ │ └── index.tsx │ │ ├── Navi │ │ │ └── index.tsx │ │ ├── WhoAreUsing │ │ │ ├── index.less │ │ │ └── index.tsx │ │ ├── city.tsx │ │ ├── county.tsx │ │ ├── province.tsx │ │ └── world.tsx │ ├── demo │ │ ├── index.less │ │ ├── index.tsx │ │ ├── util.ts │ │ └── world.tsx │ └── utils │ │ └── util.ts ├── package.json ├── public │ └── weather │ │ ├── 737.b3e3e1f0.async.js │ │ ├── index.html │ │ ├── layouts__index.393ff4f4.chunk.css │ │ ├── layouts__index.94e5c9cc.async.js │ │ ├── p__index.0bf7347e.async.js │ │ ├── p__index.b8bc0093.chunk.css │ │ └── umi.4c6db688.js ├── public_site │ ├── CNAME │ └── index.html ├── sdk │ └── demo │ │ ├── city.tsx │ │ ├── index.md │ │ └── zhejiang.tsx ├── site │ ├── components │ │ ├── L7Draw │ │ │ └── index.tsx │ │ └── L7Plot │ │ │ └── index.tsx │ ├── css │ │ ├── demo.css │ │ ├── dipper.css │ │ ├── dippermap.css │ │ └── home.css │ ├── locale.json │ └── pages │ │ ├── index.en.tsx │ │ └── index.zh.tsx └── tsconfig.json ├── tsconfig.eslint.json ├── tsconfig.json └── vite.config.ts /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json", 3 | "changelog": ["@changesets/changelog-github", { "repo": "antvis/L7" }], 4 | "commit": false, 5 | "fixed": [["@antv/l7", "@antv/l7-*"]], 6 | "linked": [], 7 | "access": "restricted", 8 | "baseBranch": "master", 9 | "updateInternalDependencies": "patch", 10 | "ignore": ["@antv/l7-site"] 11 | } 12 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | 15 | [Makefile] 16 | indent_style = tab 17 | -------------------------------------------------------------------------------- /.github/workflows/gitleaks.yml: -------------------------------------------------------------------------------- 1 | name: Gitleaks 2 | 3 | on: push 4 | 5 | jobs: 6 | gitleaks: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v2 10 | with: 11 | fetch-depth: '1' 12 | - name: gitleaks-action 13 | uses: zricethezav/gitleaks-action@v1.6.0 14 | with: 15 | config-path: .github/.gitleaks.toml 16 | -------------------------------------------------------------------------------- /.github/workflows/issue_assigness.yml: -------------------------------------------------------------------------------- 1 | name: Add Assigness 2 | 3 | on: 4 | issues: 5 | types: [opened] 6 | 7 | jobs: 8 | add-assigness: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Add assigness 12 | uses: actions-cool/issues-helper@v3 13 | with: 14 | actions: 'add-assignees' 15 | token: ${{ secrets.GITHUB_TOKEN }} 16 | issue-number: ${{ github.event.issue.number }} 17 | assignees: 'lzxue,heiyexing,lvisei' 18 | random-to: 1 19 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | npx --no -- commitlint --edit "$1" 4 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | pnpm exec lint-staged 4 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/.npmrc -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "singleQuote": true, 4 | "trailingComma": "all", 5 | "arrowParens": "always", 6 | "overrides": [ 7 | { "files": ".prettierrc", "options": { "parser": "json" } } 8 | ], 9 | "plugins": ["prettier-plugin-organize-imports", "prettier-plugin-glsl"] 10 | } 11 | -------------------------------------------------------------------------------- /.stylelintignore: -------------------------------------------------------------------------------- 1 | site/.dumi/pages 2 | site/.dumi/theme 3 | site/public 4 | site/public_site 5 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "dbaeumer.vscode-eslint", 4 | "editorconfig.editorconfig", 5 | "esbenp.prettier-vscode" 6 | ], 7 | "unwantedRecommendations": ["hookyqr.beautify", "dbaeumer.jshint"] 8 | } 9 | -------------------------------------------------------------------------------- /__tests__/integration/gallery.spec.ts: -------------------------------------------------------------------------------- 1 | import { generateCanvasTestCases } from './utils/generator'; 2 | 3 | const TEST_CASES = [ 4 | { 5 | name: 'fujian', 6 | sleepTime: 1000, 7 | }, 8 | { 9 | name: 'variFlight', 10 | sleepTime: 1000, 11 | }, 12 | ]; 13 | 14 | describe('Gallery Snapshot', () => { 15 | generateCanvasTestCases('gallery', TEST_CASES); 16 | }); 17 | -------------------------------------------------------------------------------- /__tests__/integration/heatmap.spec.ts: -------------------------------------------------------------------------------- 1 | import { generateCanvasTestCases } from './utils/generator'; 2 | 3 | const TEST_CASES = [ 4 | { 5 | name: 'normal', 6 | }, 7 | { 8 | name: 'grid', 9 | }, 10 | { 11 | name: 'hexagon', 12 | }, 13 | ]; 14 | 15 | describe('Heatmap Snapshot', () => { 16 | generateCanvasTestCases('heatmap', TEST_CASES); 17 | }); 18 | -------------------------------------------------------------------------------- /__tests__/integration/mask.spec.ts: -------------------------------------------------------------------------------- 1 | import { generateCanvasTestCases } from './utils/generator'; 2 | 3 | const TEST_CASES = [ 4 | { 5 | name: 'single', 6 | }, 7 | { 8 | name: 'multi', 9 | sleepTime: 2500, 10 | }, 11 | ]; 12 | 13 | describe('Mask Snapshot', () => { 14 | generateCanvasTestCases('mask', TEST_CASES); 15 | }); 16 | -------------------------------------------------------------------------------- /__tests__/integration/preset/constants.js: -------------------------------------------------------------------------------- 1 | import os from 'os'; 2 | import path from 'path'; 3 | 4 | export const TMP_DIR = path.join(os.tmpdir(), 'jest_global_setup'); 5 | -------------------------------------------------------------------------------- /__tests__/integration/preset/teardown.js: -------------------------------------------------------------------------------- 1 | import { rm } from 'fs/promises'; 2 | import { TMP_DIR } from './constants.js'; 3 | 4 | export default async function (_globalConfig, _projectConfig) { 5 | const server = globalThis.VITE_SERVER; 6 | await server.close(); 7 | 8 | // clean-up the tmp file 9 | await rm(TMP_DIR, { recursive: true, force: true }); 10 | } 11 | -------------------------------------------------------------------------------- /__tests__/integration/snapshots/gallery_fujian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/gallery_fujian.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/gallery_variFlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/gallery_variFlight.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/heatmap_grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/heatmap_grid.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/heatmap_hexagon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/heatmap_hexagon.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/heatmap_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/heatmap_normal.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/line_arc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/line_arc.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/line_arc3D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/line_arc3D.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/line_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/line_flow.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/line_greatcircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/line_greatcircle.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/line_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/line_normal.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/line_simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/line_simple.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/line_wall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/line_wall.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/mask_multi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/mask_multi.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/mask_single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/mask_single.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/point_billboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/point_billboard.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/point_column.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/point_column.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/point_fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/point_fill.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/point_fillImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/point_fillImage.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/point_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/point_text.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/polygon_extrude.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/polygon_extrude.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/polygon_extrusion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/polygon_extrusion.png -------------------------------------------------------------------------------- /__tests__/integration/snapshots/polygon_fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/__tests__/integration/snapshots/polygon_fill.png -------------------------------------------------------------------------------- /__tests__/integration/utils/sleep.ts: -------------------------------------------------------------------------------- 1 | export function sleep(n: number) { 2 | return new Promise((resolve) => { 3 | setTimeout(resolve, n); 4 | }); 5 | } 6 | -------------------------------------------------------------------------------- /__tests__/integration/utils/useSnapshotMatchers.ts: -------------------------------------------------------------------------------- 1 | import type { ToMatchCanvasSnapshotOptions } from './toMatchCanvasSnapshot'; 2 | import { toMatchCanvasSnapshot } from './toMatchCanvasSnapshot'; 3 | 4 | declare global { 5 | // eslint-disable-next-line @typescript-eslint/no-namespace 6 | namespace jest { 7 | interface Matchers { 8 | toMatchCanvasSnapshot(dir: string, name: string, options?: ToMatchCanvasSnapshotOptions): R; 9 | } 10 | } 11 | } 12 | 13 | expect.extend({ 14 | toMatchCanvasSnapshot, 15 | }); 16 | -------------------------------------------------------------------------------- /__tests__/unit/preset/environment.ts: -------------------------------------------------------------------------------- 1 | (window as any).URL.createObjectURL = jest.fn; 2 | (window as any).ResizeObserver = jest.fn().mockImplementation(() => ({ 3 | observe: jest.fn(), 4 | })); 5 | -------------------------------------------------------------------------------- /commitlint.config.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | extends: ['@commitlint/config-conventional'], 3 | rules: { 4 | 'type-enum': [ 5 | 2, 6 | 'always', 7 | [ 8 | 'build', 9 | 'chore', 10 | 'ci', 11 | 'docs', 12 | 'feat', 13 | 'fix', 14 | 'perf', 15 | 'refactor', 16 | 'revert', 17 | 'style', 18 | 'test', 19 | 'deps', 20 | 'wip', 21 | ], 22 | ], 23 | 'header-max-length': [2, 'always', 100], 24 | }, 25 | }; 26 | -------------------------------------------------------------------------------- /examples/.gitignore: -------------------------------------------------------------------------------- 1 | public/glsl_wgsl_compiler_bg.wasm 2 | -------------------------------------------------------------------------------- /examples/demos/basemap/index.ts: -------------------------------------------------------------------------------- 1 | export { amapData } from './amap-data'; 2 | export { wgs84Data } from './wgs84-data'; 3 | -------------------------------------------------------------------------------- /examples/demos/bugfix/index.ts: -------------------------------------------------------------------------------- 1 | export { dataShake } from './data-shake'; 2 | export { legendEvent } from './legend-event'; 3 | export { mutiPolygon } from './muti-polygon'; 4 | export { removeMutiLayer } from './remove-muti-layer'; 5 | export { setColor } from './set-color'; 6 | export { setData } from './set-data'; 7 | export { setSize } from './set-size'; 8 | export { textOffsets } from './text-offsets'; 9 | export { tileText } from './tile-text'; 10 | export { tileUpdate } from './tile-update'; 11 | export { touchEvent } from './touch-event'; 12 | -------------------------------------------------------------------------------- /examples/demos/canvas/index.ts: -------------------------------------------------------------------------------- 1 | export { event } from './event'; 2 | export { layer } from './layer'; 3 | -------------------------------------------------------------------------------- /examples/demos/components/index.ts: -------------------------------------------------------------------------------- 1 | export { layerPopup } from './layer-popup'; 2 | export { marker } from './marker'; 3 | export { popup } from './popup'; 4 | export { swipe } from './swipe'; 5 | export { zoom } from './zoom'; 6 | -------------------------------------------------------------------------------- /examples/demos/extend/index.ts: -------------------------------------------------------------------------------- 1 | export { threeGeometry } from './three-geometry'; 2 | -------------------------------------------------------------------------------- /examples/demos/gallery/index.ts: -------------------------------------------------------------------------------- 1 | export { fujian } from './fujian'; 2 | export { variFlight } from './vari-flight'; 3 | -------------------------------------------------------------------------------- /examples/demos/geometry/index.ts: -------------------------------------------------------------------------------- 1 | export { plane } from './plane'; 2 | export { rain } from './rain'; 3 | export { snow } from './snow'; 4 | export { terrain } from './terrain'; 5 | -------------------------------------------------------------------------------- /examples/demos/heatmap/index.ts: -------------------------------------------------------------------------------- 1 | export { grid } from './grid'; 2 | export { hexagon } from './hexagon'; 3 | export { normal } from './normal'; 4 | export { normal3D } from './normal-3d'; 5 | -------------------------------------------------------------------------------- /examples/demos/line/index.ts: -------------------------------------------------------------------------------- 1 | export { arc } from './arc'; 2 | export { arc3D } from './arc-3d'; 3 | export { dash } from './dash'; 4 | export { flow } from './flow'; 5 | export { greatcircle } from './greatcircle'; 6 | export { normal } from './normal'; 7 | export { simple } from './simple'; 8 | export { wall } from './wall'; 9 | -------------------------------------------------------------------------------- /examples/demos/mask/index.ts: -------------------------------------------------------------------------------- 1 | export { multi } from './multi'; 2 | export { rasterTile } from './raster-tile'; 3 | export { single } from './single'; 4 | -------------------------------------------------------------------------------- /examples/demos/point/index.ts: -------------------------------------------------------------------------------- 1 | export { billboard } from './billboard'; 2 | export { column } from './column'; 3 | export { dot } from './dot'; 4 | export { fill } from './fill'; 5 | export { fillImage } from './fill-image'; 6 | export { image } from './image'; 7 | export { radar } from './radar'; 8 | export { text } from './text'; 9 | -------------------------------------------------------------------------------- /examples/demos/polygon/index.ts: -------------------------------------------------------------------------------- 1 | export { extrude } from './extrude'; 2 | export { extrudeCity } from './extrude-city'; 3 | export { extrusion } from './extrusion'; 4 | export { fill } from './fill'; 5 | export { fillLinear } from './fill-linear'; 6 | export { ocean } from './ocean'; 7 | export { texture } from './texture'; 8 | export { water } from './water'; 9 | -------------------------------------------------------------------------------- /examples/demos/raster/index.ts: -------------------------------------------------------------------------------- 1 | export { dem } from './dem'; 2 | export { image } from './image'; 3 | export { imageBox } from './imageBox'; 4 | export { multiband } from './multiband'; 5 | export { ndvi } from './ndvi'; 6 | export { tiff } from './tiff'; 7 | -------------------------------------------------------------------------------- /examples/demos/tile/index.ts: -------------------------------------------------------------------------------- 1 | export { rasterTile } from './raster-tile'; 2 | export { terrainRGB } from './terrain-rgb'; 3 | export { vectorCity } from './vector-city'; 4 | export { vectorLine } from './vector-line'; 5 | export { vectorPerf } from './vector-perf'; 6 | export { vectorUSA } from './vector-usa'; 7 | -------------------------------------------------------------------------------- /examples/demos/webgpu/index.ts: -------------------------------------------------------------------------------- 1 | export { boids } from './boids'; 2 | export { computeTexture } from './compute-texture'; 3 | export { idw } from './idw'; 4 | export { perf } from './perf'; 5 | -------------------------------------------------------------------------------- /examples/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import { Main } from './main'; 4 | 5 | ReactDOM.createRoot(document.getElementById('root')!).render(
); 6 | -------------------------------------------------------------------------------- /examples/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './scene'; 2 | export * from './sleep'; 3 | -------------------------------------------------------------------------------- /examples/utils/sleep.ts: -------------------------------------------------------------------------------- 1 | export function sleep(n: number) { 2 | return new Promise((resolve) => { 3 | setTimeout(resolve, n); 4 | }); 5 | } 6 | -------------------------------------------------------------------------------- /legacy/build/bundle.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | export * from '@antv/l7'; 3 | -------------------------------------------------------------------------------- /legacy/build/rollup-plugin-inline-worker.js: -------------------------------------------------------------------------------- 1 | import { createFilter } from 'rollup-pluginutils'; 2 | 3 | export default function inlineWorker(include) { 4 | const filter = createFilter(include); 5 | return { 6 | name: 'inline-worker', 7 | transform(code, id) { 8 | if (!filter(id)) return; 9 | 10 | return { 11 | code: `export default ${JSON.stringify(code)};`, 12 | map: { mappings: '' }, 13 | }; 14 | }, 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /legacy/dev-demos/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /dist 3 | /docs-dist 4 | .dumi/tmp 5 | .dumi/tmp-production 6 | .umi-production/ 7 | .umi/ 8 | .DS_Store 9 | .vscode 10 | .idea 11 | -------------------------------------------------------------------------------- /legacy/dev-demos/index.md: -------------------------------------------------------------------------------- 1 | ## L7 DEV 2 | L7 地理可视化 Demo 开发、feature、bug 测试相关demo开发 -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/heatmap/heatmap.md: -------------------------------------------------------------------------------- 1 | ### 热力图 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/heatmap/hexagon.md: -------------------------------------------------------------------------------- 1 | ### 网格热力图 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/index.md: -------------------------------------------------------------------------------- 1 | ### 用于 BUG 修复 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/larkmap/polygon.md: -------------------------------------------------------------------------------- 1 | ### 区域图 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/larkmap/rastertile.md: -------------------------------------------------------------------------------- 1 | ### 栅格图 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/line/arc_linear.md: -------------------------------------------------------------------------------- 1 | ### 弧线渐变 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/line/line.md: -------------------------------------------------------------------------------- 1 | ### gaodev1 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/line/setdata.md: -------------------------------------------------------------------------------- 1 | ### line setdata 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/marker/event.md: -------------------------------------------------------------------------------- 1 | ### Marker 事件 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/marker/index.md: -------------------------------------------------------------------------------- 1 | ### Marker 动态添加 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/point/circle.md: -------------------------------------------------------------------------------- 1 | ### Point - 圆 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/point/cluster.md: -------------------------------------------------------------------------------- 1 | ### Point - cluster 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/point/image.md: -------------------------------------------------------------------------------- 1 | ### Point - image 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/point/imagesize.md: -------------------------------------------------------------------------------- 1 | ### Point - image-size 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/point/shape.md: -------------------------------------------------------------------------------- 1 | ### Point - Shape 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/point/stroke.md: -------------------------------------------------------------------------------- 1 | ### Point - stroke 2 | #### style 映射 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/point/text.md: -------------------------------------------------------------------------------- 1 | ### Point - text 2 | #### 文本更新 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/point/update.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'point' 4 | title: 点 5 | --- 6 | ### Point - update 7 | #### style 映射 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/polygon/active.md: -------------------------------------------------------------------------------- 1 | ### polygon Active 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/polygon/district.md: -------------------------------------------------------------------------------- 1 | ### district 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/polygon/highlight.md: -------------------------------------------------------------------------------- 1 | ### polygon highlight 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/polygon/polygon.md: -------------------------------------------------------------------------------- 1 | ### polygon 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/polygon/polygonindex.md: -------------------------------------------------------------------------------- 1 | ### polygon 层级 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/polygon/quantile.md: -------------------------------------------------------------------------------- 1 | ### polygon Quantile 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/polygon/scale.md: -------------------------------------------------------------------------------- 1 | ### scale 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/polygon/select.md: -------------------------------------------------------------------------------- 1 | ### select 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/scene/bmap.md: -------------------------------------------------------------------------------- 1 | ### 百度地图 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/scene/exportimg.md: -------------------------------------------------------------------------------- 1 | ### 导出图片 2 | 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/scene/multiMap.md: -------------------------------------------------------------------------------- 1 | ### multiMap 地图 2 | 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/scene/removelayer.md: -------------------------------------------------------------------------------- 1 | ### 图层移除 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/scene/testDestroy.md: -------------------------------------------------------------------------------- 1 | ### testDestroy 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/source/source.md: -------------------------------------------------------------------------------- 1 | ### JSON - geometry 2 | 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/source/sourceUpdate.md: -------------------------------------------------------------------------------- 1 | ### source 更新 2 | 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/bugs/three/marker.md: -------------------------------------------------------------------------------- 1 | ### Three-Marker 2 | 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/exportImage.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 导出图片 3 | order: 9 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/fullscreen.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 全屏 3 | order: 8 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/hide.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 显示/隐藏 3 | order: 3 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/layerSwitch.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 图层控制 3 | order: 13 4 | --- 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/logo.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Logo 3 | order: 10 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/mapTheme.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 地图样式 3 | order: 12 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/mouseLocation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 鼠标经纬度 3 | order: 12 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/navigation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 定位 3 | order: 10 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/position.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 控件位置 3 | order: 1 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/remove.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 插入/移除 3 | order: 4 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/scale.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 比例尺 3 | order: 14 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/setOptions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 更新配置 3 | order: 2 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/swipe.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 卷帘 3 | order: 15 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/control/zoom.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 缩放 3 | order: 13 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/marker/marker.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Marker 3 | order: 1 4 | --- 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/marker/markerLayer.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MarkerLayer 3 | order: 2 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/popup/layerPopup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 图层气泡 3 | order: 2 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/popup/popup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 气泡 3 | order: 1 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/scene/boxSelect.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Scene 3 | order: 3 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/sync-scene/syncSene.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 同步地图 3 | order: 4 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/component/sync-scene/types.ts: -------------------------------------------------------------------------------- 1 | import type { Scene } from '@antv/l7'; 2 | 3 | export interface ISyncSceneOptions { 4 | zoomGap?: number; 5 | mainIndex?: number; 6 | } 7 | export interface SyncSceneProps { 8 | scenes: Scene[]; 9 | options?: ISyncSceneOptions; 10 | } 11 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/draw/control.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 绘制组件 3 | order: 3 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/draw/destroy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 图层销毁 3 | order: 3 4 | group: 5 | path: /polygon 6 | order: 3 7 | --- 8 | 9 | 10 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/draw/line.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 绘制线 3 | order: 3 4 | group: 5 | path: /polygon 6 | order: 3 7 | --- 8 | 9 | 10 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/draw/line_area.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 展示距离和面积 3 | order: 3 4 | group: 5 | path: /polygon 6 | title: 图形绘制 7 | order: 3 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/draw/polygon.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 绘制面 3 | order: 3 4 | group: 5 | path: /polygon 6 | order: 3 7 | --- 8 | 9 | 10 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/canvasLayer/canvas2d.md: -------------------------------------------------------------------------------- 1 | ### CanvasLayer - canvas2d 2 | 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/citybuilding/amap1.md: -------------------------------------------------------------------------------- 1 | ### building - amap1 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/citybuilding/amap2.md: -------------------------------------------------------------------------------- 1 | ### building - amap2 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/citybuilding/mapbox.md: -------------------------------------------------------------------------------- 1 | ### building - mapbox 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/earth/earth.md: -------------------------------------------------------------------------------- 1 | ### earth 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/fix/fix.md: -------------------------------------------------------------------------------- 1 | ### fix feature 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/fix/fix2.md: -------------------------------------------------------------------------------- 1 | ### fix2 feature 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/geometry/billboard.md: -------------------------------------------------------------------------------- 1 | ### billboard 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/geometry/plane.md: -------------------------------------------------------------------------------- 1 | ### plane 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/geometry/sprite.md: -------------------------------------------------------------------------------- 1 | ### sprite 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/heatmap/grid.md: -------------------------------------------------------------------------------- 1 | ### grid 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/heatmap/grid3d.md: -------------------------------------------------------------------------------- 1 | ### grid3d 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/heatmap/heatmap.md: -------------------------------------------------------------------------------- 1 | ### Heatmap-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/heatmap/heatmap3d.md: -------------------------------------------------------------------------------- 1 | ### Heatmap - 3D-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/heatmap/hexagon.md: -------------------------------------------------------------------------------- 1 | ### hexagon-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/imageLayer/image.md: -------------------------------------------------------------------------------- 1 | ### Image Layer 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/imageLayer/raster.md: -------------------------------------------------------------------------------- 1 | ### Image Layer - raster 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/legend/cat.md: -------------------------------------------------------------------------------- 1 | ### 枚举类型 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/flowline.md: -------------------------------------------------------------------------------- 1 | ### Line - flowline 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/line.md: -------------------------------------------------------------------------------- 1 | ### Line - Normal 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineAnimate.md: -------------------------------------------------------------------------------- 1 | ### Line - animate 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineArc.md: -------------------------------------------------------------------------------- 1 | ### Line - arc 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineArc3d.md: -------------------------------------------------------------------------------- 1 | ### Line - arc3d 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineArcDeg.md: -------------------------------------------------------------------------------- 1 | ### Line - 弧线角度 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineArcLinear.md: -------------------------------------------------------------------------------- 1 | ### Line - arcLinear 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineArcPlane.md: -------------------------------------------------------------------------------- 1 | ### Line - arc - plane 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineArrow.md: -------------------------------------------------------------------------------- 1 | ### Line - arrow 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineGreatcircle.md: -------------------------------------------------------------------------------- 1 | ### Line - greatCircle 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/linePopulation.md: -------------------------------------------------------------------------------- 1 | ### Line - Population 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineTexture.md: -------------------------------------------------------------------------------- 1 | ### Line - texture 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineWorker.md: -------------------------------------------------------------------------------- 1 | ### Line - worker 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/line_stroke.md: -------------------------------------------------------------------------------- 1 | ### Line - stroke 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/linearline.md: -------------------------------------------------------------------------------- 1 | ### Line - linear 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineblur.md: -------------------------------------------------------------------------------- 1 | ### Line - blur 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/linedash.md: -------------------------------------------------------------------------------- 1 | ### Line - dash 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/lineheight.md: -------------------------------------------------------------------------------- 1 | ### Line - height 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/linewall.md: -------------------------------------------------------------------------------- 1 | ### Line - wall 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/line/simpleline.md: -------------------------------------------------------------------------------- 1 | ### Line - simple 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/marker/marker.md: -------------------------------------------------------------------------------- 1 | ### Marker - 标注 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/mask/heatmap.md: -------------------------------------------------------------------------------- 1 | ### heatmap 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/mask/heatmapgrid.md: -------------------------------------------------------------------------------- 1 | ### heatmapgrid 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/mask/heatmapgrid3d.md: -------------------------------------------------------------------------------- 1 | ### heatmapgrid3d 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/mask/hexgon.md: -------------------------------------------------------------------------------- 1 | ### hexgon 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/mask/image.md: -------------------------------------------------------------------------------- 1 | ### image 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/mask/raster.md: -------------------------------------------------------------------------------- 1 | ### raster 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/mask/raster_point.md: -------------------------------------------------------------------------------- 1 | ### raster-point 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/mask/singleMask.md: -------------------------------------------------------------------------------- 1 | ### singleMask 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/mask/text.md: -------------------------------------------------------------------------------- 1 | ### text 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/mask/wind.md: -------------------------------------------------------------------------------- 1 | ### wind 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/circle.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | title: 点 4 | order: 1 5 | --- 6 | 7 | ### point - circle 等面积 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointBillboard.md: -------------------------------------------------------------------------------- 1 | ### point - billboard(simple) 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointCircleWebGPU.md: -------------------------------------------------------------------------------- 1 | ### point - circle - WebGPU 2 | 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointColumn.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | title: 点 4 | order: 4 5 | --- 6 | 7 | ### point - column-device 8 | 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointCylinder.md: -------------------------------------------------------------------------------- 1 | ### point - cylinder 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointFillImage.md: -------------------------------------------------------------------------------- 1 | ### point - fillImage 2 | 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointIconfont.md: -------------------------------------------------------------------------------- 1 | ### Point - text - iconfont 2 | 3 | #### iconfont 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointIcons.md: -------------------------------------------------------------------------------- 1 | ### point - icons 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointNormal.md: -------------------------------------------------------------------------------- 1 | ### Point - normal-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointNormalDevice.md: -------------------------------------------------------------------------------- 1 | ### Point - normal - Device API 2 | 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointRadar.md: -------------------------------------------------------------------------------- 1 | ### point - radar-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointSimple.md: -------------------------------------------------------------------------------- 1 | ### Point - simple 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointText.md: -------------------------------------------------------------------------------- 1 | ### Point - text 2 | #### normal text 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/point/pointText2.md: -------------------------------------------------------------------------------- 1 | ### Point - text2 2 | #### 文本偏移 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/polygon/extrude.md: -------------------------------------------------------------------------------- 1 | ### Polygon - extrude 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/polygon/fill.md: -------------------------------------------------------------------------------- 1 | ### Polygon - fill-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/polygon/fill_3d.md: -------------------------------------------------------------------------------- 1 | ### Polygon - fill 3D-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/polygon/indoor.md: -------------------------------------------------------------------------------- 1 | ### Polygon - indoor-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/polygon/ocean.md: -------------------------------------------------------------------------------- 1 | ### Polygon - ocean-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/polygon/texture.md: -------------------------------------------------------------------------------- 1 | ### Polygon - texture-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/polygon/water.md: -------------------------------------------------------------------------------- 1 | ### Polygon - water-device 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/something/wind.md: -------------------------------------------------------------------------------- 1 | ### wind 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/basemap.md: -------------------------------------------------------------------------------- 1 | ### Render Map - Base Tile Map ( L7Layer X 12) 2 | 绘制地图 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/hillshade.md: -------------------------------------------------------------------------------- 1 | ### Raster - HillShade 2 | 山体阴影 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/mask.md: -------------------------------------------------------------------------------- 1 | ### Vector - Mask 2 | 3 | #### vector mask 4 | mask 掩模瓦片图层 5 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/minedatamap.md: -------------------------------------------------------------------------------- 1 | ### 底图- Vector Tile Map 2 | 3 | 地图底图 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/rasterData.md: -------------------------------------------------------------------------------- 1 | ### Raster - RasterData 2 | 数据栅格 3 | #### 加载 tiff 4 | 5 | 6 | #### 加载 lerc 7 | 8 | 9 | #### 加载 image 10 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/rasterDataImage.md: -------------------------------------------------------------------------------- 1 | ### Raster - RasterDataImage 2 | raster 图片瓦片 3 | 4 | #### 图片瓦片 - 颜色映射 5 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/rasterDataMask.md: -------------------------------------------------------------------------------- 1 | ### Raster - RasterData - Mask 2 | 数据栅格 + Mask 3 | 4 | #### 加载 image + Mask 5 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/rasterDataMul.md: -------------------------------------------------------------------------------- 1 | ### Raster - RasterData - Multi 2 | 数据栅格 Multi 3 | #### 加载 tiff 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/rasterDataRGB.md: -------------------------------------------------------------------------------- 1 | ### Raster - RasterData RGB 2 | 彩色数据栅格(多通道) 3 | 4 | #### 加载 image 5 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/rasterDataUpdate.md: -------------------------------------------------------------------------------- 1 | ### Raster - RasterData - Update 2 | 数据栅格 update 3 | #### 加载 tiff 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/vector.md: -------------------------------------------------------------------------------- 1 | ### Vector 2 | 5 | 6 | #### vector line 7 | --> 8 | 9 | 11 | 12 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/vectormap.md: -------------------------------------------------------------------------------- 1 | ### Render Map - Vector Tile Map 2 | 绘制地图 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/features/tile/worldmap.md: -------------------------------------------------------------------------------- 1 | ### world 2 | world 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/gallery/map/fujian.md: -------------------------------------------------------------------------------- 1 | ### 福建 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/gallery/map/suspension-map.md: -------------------------------------------------------------------------------- 1 | ### 大屏地图 2 | 3 | 4 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/gallery/scale/cat.md: -------------------------------------------------------------------------------- 1 | ### 枚举类型 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/gallery/scale/diverging.md: -------------------------------------------------------------------------------- 1 | ### 离散类型 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/gallery/scale/linear.md: -------------------------------------------------------------------------------- 1 | ### 连续线性 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/gallery/scale/map.md: -------------------------------------------------------------------------------- 1 | ### 疫情达峰 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/gallery/scale/quantile.md: -------------------------------------------------------------------------------- 1 | ### 等分位 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/gallery/scale/quantize.md: -------------------------------------------------------------------------------- 1 | ### 等间距 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/gallery/scale/sequential.md: -------------------------------------------------------------------------------- 1 | ### 连续 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/gallery/scale/threshold.md: -------------------------------------------------------------------------------- 1 | ### 自定义分段 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/image/image.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'image-device' 4 | title: 图片 5 | --- 6 | ### 图片图层 7 | 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/multiband/432.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'multiband' 4 | title: 多波段 5 | --- 6 | 7 | ### LandSat 自然真彩色 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/multiband/cog.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'multiband' 4 | title: COG 5 | --- 6 | ### COG Data 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/multiband/ndbi.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'multiband' 4 | title: 多波段 5 | --- 6 | ### LandSat NDBI 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/multiband/ndvi.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'multiband' 4 | title: 多波段 5 | --- 6 | ### LandSat NDVI 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/multiband/ndwi.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'multiband' 4 | title: 多波段 5 | --- 6 | ### LandSat NDWI 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/multiband/rasterNDVI.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'multiband' 4 | title: 多波段 5 | --- 6 | ### NDVI 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/multiband/rgb.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'multiband' 4 | title: 多波段 5 | --- 6 | ### RGB 原色 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/ndvi.md: -------------------------------------------------------------------------------- 1 | ### ndvi 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/single/light.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'singleband' 4 | title: 单波段 5 | --- 6 | ### Raster TIFF 夜光图 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/raster/single/rasterFile.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'singleband' 4 | title: 单波段 5 | --- 6 | ### Raster TIFF 单波段 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/Sentinel-2.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: SenTinel 底图 6 | order: 2 7 | --- 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/customimage.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: 星球地图 -影像-自定义 6 | order: 2 7 | --- 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/dem.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: 星球地图-地形晕渲 6 | order: 2 7 | --- 8 | 9 | 地形晕渲 API 是通过 HTTPS 协议访问远程服务的接口,返回指定区域的地形瓦片地图。 10 | 11 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/export.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: 星球地图 -影像导出 6 | order: 2 7 | --- 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/hillshader.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: 星球地图 - Hillshade 6 | order: 2 7 | --- 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/mask.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: 星球地图-卫星图-mask 6 | order: 2 7 | --- 8 | 9 | 10 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/mask2.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: 星球地图-卫星图-mask2 6 | order: 2 7 | --- 8 | 9 | 10 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/normal.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: 星球地图-矢量图 6 | order: 2 7 | --- 8 | 9 | 矢量图API是通过HTTPS协议访问远程服务的接口,返回指定区域的矢量瓦片地图。其中包含了全球注记、全球境界数据。 10 | 11 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/raster.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: 星球地图 -影像 6 | order: 2 7 | --- 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/rasterupdate.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: 星球地图 -影像更新 6 | order: 2 7 | --- 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/terrain.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: 星球地图 - Terrain-RGB 6 | order: 2 7 | --- 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/wmsmap.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | title: WMS底图-BBox 6 | order: 2 7 | --- 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/wmts.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | order: 0 6 | title: WMTS底图 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/BaseMap/zelda.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'basemap' 4 | title: 地图底图 5 | order: 0 6 | title: 塞尔达 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Mask/raster_roller.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'Mask' 4 | title: 掩模 5 | title: 地图卷帘 6 | order: 2 7 | --- 8 | 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Mask/vector_raster.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'Mask' 4 | title: 掩模 5 | title: 矢量栅格瓦片 6 | order: 2 7 | --- 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Raster/image.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'rastertile' 4 | title: 栅格数据 5 | title: 卫星图 6 | order: 2 7 | --- 8 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Raster/imageRGB.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'rastertile' 4 | title: 栅格数据 5 | title: 彩色栅格 6 | order: 2 7 | --- 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Raster/multiRaster.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'rastertile' 4 | title: 栅格数据 5 | title: 多波段 NDVI 6 | --- 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Raster/multirgb.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'rastertile' 4 | title: 栅格数据 5 | title: 多波段 RGB组合 6 | --- 7 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Raster/rasterData.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'rastertile' 4 | title: 栅格数据 5 | 6 | title: 单波段-栅格数据 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Raster/terrainrgb.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'rastertile' 4 | title: 栅格数据 5 | 6 | title: Terrain 地形 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/chinacity.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: 中国城市 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/chinadistrict.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: 中国区县 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/citytile.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: 北京瓦片 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/debug.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: debug地图 7 | order: 0 8 | --- 9 | 10 | 11 | ### 世界地图 12 | 13 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/event.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: 瓦片交互 7 | order: 0 8 | --- 9 | 10 | 11 | ### 瓦片交互 12 | 13 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/farmland.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: 矢量 FarmLand 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/geojsonvt.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: geojsonvt 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/geojsonvt_update.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: geojsonvt 更新 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/pmtiles.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: PMTiles 7 | order: 0 8 | --- 9 | 10 | 11 | ### Polygon 12 | 13 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/point.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: Point 7 | order: 0 8 | --- 9 | 10 | 11 | ### Point 12 | 13 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/polygon.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: Polygon 7 | order: 0 8 | --- 9 | 10 | 11 | ### Polygon 12 | 13 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/simpleLine.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: Simple Line 7 | order: 0 8 | --- 9 | 10 | 11 | ### Simple Line 12 | 13 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/text.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: 绘制文字 7 | order: 0 8 | --- 9 | 10 | 11 | ### Point Text 12 | 13 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/vector_join.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: 矢量瓦片-数据join 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/vectormask.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: 矢量瓦片-掩模 7 | order: 2 8 | --- 9 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/tile/Vector/worldmap.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: 3 | path: 'vector' 4 | title: '矢量瓦片' 5 | order: 1 6 | title: 世界地图 7 | order: 0 8 | --- 9 | 10 | 11 | ### 世界地图 12 | 13 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/webgpu/device/boids.md: -------------------------------------------------------------------------------- 1 | ### boids 2 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/webgpu/device/compute_texture.md: -------------------------------------------------------------------------------- 1 | ### 纹理计算 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/webgpu/device/g-device.md: -------------------------------------------------------------------------------- 1 | ### g-device 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/webgpu/device/rect.md: -------------------------------------------------------------------------------- 1 | ### 矩形 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/webgpu/device/texture.md: -------------------------------------------------------------------------------- 1 | ### 纹理 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/webgpu/raw/boids.md: -------------------------------------------------------------------------------- 1 | ### boids 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-demos/src/webgpu/raw/raw.md: -------------------------------------------------------------------------------- 1 | ### 原生 WebGPU 2 | 3 | -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/MSAA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/MSAA.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/blurpass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/blurpass.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/custom-effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/custom-effect.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/di-containers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/di-containers.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/dotscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/dotscreen.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/halftone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/halftone.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/halton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/halton.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/hexagonalPixelate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/hexagonalPixelate.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/jest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/jest.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/mapbox-MSAA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/mapbox-MSAA.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/monorep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/monorep.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/multi-scene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/multi-scene.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/noise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/noise.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/packages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/packages.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/sepia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/sepia.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/taa-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/taa-1.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/taa-result.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/taa-result.gif -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/taa-step1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/taa-step1.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/taa-step2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/taa-step2.png -------------------------------------------------------------------------------- /legacy/dev-docs/screenshots/taa-step3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/legacy/dev-docs/screenshots/taa-step3.png -------------------------------------------------------------------------------- /legacy/scripts/merge_js_ts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 设置目标目录 4 | target_directory="website/examples" 5 | 6 | # 设置合并后的文件名 7 | merged_file="merged_demo_code.txt" 8 | 9 | # 删除已存在的合并文件 10 | rm -f "$merged_file" 11 | 12 | # 遍历目标目录下的所有.md文件 13 | find "$target_directory" -type f \( -name "*.ts" -o -name "*.js" \) -print0 | while IFS= read -r -d $'\0' file; do 14 | # 输出当前处理的文件名 15 | echo "Merging $file" 16 | 17 | # 使用cat命令将文件内容追加到合并文件中 18 | cat "$file" >> "$merged_file" 19 | done 20 | 21 | echo "Merge complete. Merged file: $merged_file" 22 | -------------------------------------------------------------------------------- /legacy/scripts/merge_md.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 设置目标目录 4 | target_directory="website/docs" 5 | 6 | # 设置合并后的文件名 7 | merged_file="merged.md" 8 | 9 | # 删除已存在的合并文件 10 | rm -f "$merged_file" 11 | 12 | # 遍历目标目录下的所有.md文件 13 | find "$target_directory" -type f -name "*.md" -print0 | while IFS= read -r -d $'\0' file; do 14 | # 输出当前处理的文件名 15 | echo "Merging $file" 16 | 17 | # 使用cat命令将文件内容追加到合并文件中 18 | cat "$file" >> "$merged_file" 19 | done 20 | 21 | echo "Merge complete. Merged file: $merged_file" 22 | -------------------------------------------------------------------------------- /packages/component/.fatherrc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'father'; 2 | 3 | const isProduction = process.env.NODE_ENV === 'production'; 4 | 5 | export default defineConfig({ 6 | extends: '../../.fatherrc.base.ts', 7 | // 使用 babel 编译 esm/cjs 产物,启用 transform-import-css-l7 插件完成 CSS 内联打包 8 | esm: { transformer: 'babel' }, 9 | cjs: isProduction ? { transformer: 'babel' } : undefined, 10 | }); 11 | -------------------------------------------------------------------------------- /packages/component/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/component/__tests__/navigation.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestScene } from '@antv/l7-test-utils'; 2 | import Navigation from '../src/control/geoLocate'; 3 | 4 | describe('navigation', () => { 5 | const scene = TestScene(); 6 | 7 | it('navigation', () => { 8 | const control = new Navigation({}); 9 | scene.addControl(control); 10 | 11 | const button = control.getContainer() as HTMLDivElement; 12 | button.click(); 13 | 14 | expect(button.parentElement).toBeInstanceOf(HTMLElement); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /packages/component/__tests__/swipe.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestScene } from '@antv/l7-test-utils'; 2 | import Swipe from '../src/control/swipe'; 3 | 4 | describe('swipe', () => { 5 | const scene = TestScene(); 6 | 7 | it('life cycle', () => { 8 | const swipe = new Swipe(); 9 | scene.addControl(swipe); 10 | 11 | const container = swipe.getContainer(); 12 | expect(container.parentElement).toBeInstanceOf(HTMLElement); 13 | 14 | scene.removeControl(swipe); 15 | expect(container.parentElement).not.toBeInstanceOf(HTMLElement); 16 | }); 17 | }); 18 | -------------------------------------------------------------------------------- /packages/component/src/control/baseControl/index.ts: -------------------------------------------------------------------------------- 1 | export { ButtonControl, type IButtonControlOption } from './buttonControl'; 2 | export { Control, PositionType, type IControlOption } from './control'; 3 | export { PopperControl, type IPopperControlOption } from './popperControl'; 4 | export { SelectControl, type ControlOptionItem, type ISelectControlOption } from './selectControl'; 5 | -------------------------------------------------------------------------------- /packages/component/src/css/index.less: -------------------------------------------------------------------------------- 1 | @import 'variables'; 2 | @import 'l7'; 3 | @import 'control'; 4 | @import 'button'; 5 | @import 'popper'; 6 | @import 'select'; 7 | @import 'logo'; 8 | @import 'mouseLocation'; 9 | @import 'zoom'; 10 | @import 'scale'; 11 | @import 'popup'; 12 | @import 'layerPopup'; 13 | @import 'swipe'; 14 | -------------------------------------------------------------------------------- /packages/component/src/css/layerPopup.less: -------------------------------------------------------------------------------- 1 | @import 'variables'; 2 | 3 | .l7-layer-popup__row { 4 | font-size: 12px; 5 | & + & { 6 | margin-top: 4px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/component/src/css/logo.less: -------------------------------------------------------------------------------- 1 | @import 'variables'; 2 | 3 | .l7-control-logo { 4 | width: 89px; 5 | height: 16px; 6 | user-select: none; 7 | img { 8 | height: 100%; 9 | width: 100%; 10 | } 11 | .l7-control-logo-link { 12 | display: block; 13 | cursor: pointer; 14 | img { 15 | cursor: pointer; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/component/src/css/mouseLocation.less: -------------------------------------------------------------------------------- 1 | @import 'variables'; 2 | 3 | .l7-control-mouse-location { 4 | background-color: @l7-control-bg-color; 5 | border-radius: @l7-btn-control-border-radius; 6 | box-shadow: @l7-control-shadow; 7 | padding: 2px 4px; 8 | min-width: 130px; 9 | } 10 | -------------------------------------------------------------------------------- /packages/component/src/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/packages/component/src/images/layers.png -------------------------------------------------------------------------------- /packages/component/src/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/packages/component/src/images/logo.png -------------------------------------------------------------------------------- /packages/component/src/utils/icon.ts: -------------------------------------------------------------------------------- 1 | export const createL7Icon = (className: string) => { 2 | const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); 3 | svg.classList.add('l7-iconfont'); 4 | svg.setAttribute('aria-hidden', 'true'); 5 | const use = document.createElementNS('http://www.w3.org/2000/svg', 'use'); 6 | use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', `#${className}`); 7 | svg.appendChild(use); 8 | return svg; 9 | }; 10 | -------------------------------------------------------------------------------- /packages/component/style.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.css' { 2 | const classes: { readonly [key: string]: string }; 3 | export default classes; 4 | } 5 | declare module '*.less' { 6 | const classes: { readonly [key: string]: string }; 7 | export default classes; 8 | } 9 | -------------------------------------------------------------------------------- /packages/component/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/core/.fatherrc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'father'; 2 | 3 | const isProduction = process.env.NODE_ENV === 'production'; 4 | 5 | export default defineConfig({ 6 | extends: '../../.fatherrc.base.ts', 7 | // 使用 babel 编译 esm/cjs 产物,启用 babel-plugin-inline-import 插件完成 glsl 内联打包 8 | esm: { transformer: 'babel' }, 9 | cjs: isProduction ? { transformer: 'babel' } : undefined, 10 | }); 11 | -------------------------------------------------------------------------------- /packages/core/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/core/__tests__/core.spec.ts: -------------------------------------------------------------------------------- 1 | import Camera, { CAMERA_TYPE } from '../src/services/camera/Camera'; 2 | import Landmark from '../src/services/camera/Landmark'; 3 | describe('CanvasLayer', () => { 4 | const camera = new Camera(CAMERA_TYPE.EXPLORING); 5 | const landmark = new Landmark('name', camera); 6 | it('init', () => { 7 | expect(camera.matrix.length).toEqual(16); 8 | expect(landmark.name).toEqual('name'); 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /packages/core/__tests__/utils/math.spec.ts: -------------------------------------------------------------------------------- 1 | import { getAngle } from '../../src/utils/math'; 2 | 3 | describe('util.math', () => { 4 | it('should clamp angle with `getAngle()`', () => { 5 | expect(getAngle(30)).toBe(30); 6 | expect(getAngle(361)).toBe(1); 7 | expect(getAngle(-361)).toBe(-1); 8 | expect(getAngle(undefined)).toBe(0); 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /packages/core/glsl.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.glsl' { 2 | const content: string; 3 | export default content; 4 | } 5 | -------------------------------------------------------------------------------- /packages/core/src/services/asset/ITextureService.ts: -------------------------------------------------------------------------------- 1 | import type { IColorRamp } from '@antv/l7-utils'; 2 | import type { ITexture2D } from '../renderer/ITexture2D'; 3 | export interface ITextureService { 4 | setColorTexture(texture: ITexture2D, colorRamp: IColorRamp, domain?: [number, number]): void; 5 | getColorTexture(colorRamp: IColorRamp, domain?: [number, number]): ITexture2D; 6 | destroy(): void; 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/src/services/config/sceneConfigSchema.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 场景 Schema 3 | */ 4 | export default { 5 | properties: { 6 | // 地图容器 ID 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/core/src/services/config/warnInfo.ts: -------------------------------------------------------------------------------- 1 | export interface IWarnInfo { 2 | MapToken: string; 3 | SDK: string; 4 | [key: string]: any; 5 | } 6 | const WarnInfo: IWarnInfo = { 7 | MapToken: 8 | '您正在使用 Demo 测试 Token, 生产环境务必自行注册 Token 确保服务稳定 高德地图申请地址 https://lbs.amap.com/api/javascript-api/guide/abc/prepare Mapbox地图申请地址 https://docs.mapbox.com/help/glossary/access-token/', 9 | SDK: '请确认引入了mapbox-gl api且在L7之前引入', 10 | }; 11 | 12 | export default WarnInfo; 13 | -------------------------------------------------------------------------------- /packages/core/src/services/renderer/IUniform.ts: -------------------------------------------------------------------------------- 1 | import type { IFramebuffer } from './IFramebuffer'; 2 | import type { ITexture2D } from './ITexture2D'; 3 | 4 | interface IStruct { 5 | [structPropName: string]: number | number[] | boolean | IStruct | IStruct[]; 6 | } 7 | 8 | export type IUniform = 9 | | number 10 | | number[] 11 | | ArrayBufferView 12 | | boolean 13 | | IFramebuffer 14 | | ITexture2D 15 | | IStruct 16 | | null; 17 | -------------------------------------------------------------------------------- /packages/core/src/shaders/common.glsl: -------------------------------------------------------------------------------- 1 | #define PI 3.14159265359 -------------------------------------------------------------------------------- /packages/core/src/shaders/picking_uniforms.glsl: -------------------------------------------------------------------------------- 1 | layout(std140) uniform PickingUniforms { 2 | vec4 u_HighlightColor; 3 | vec4 u_SelectColor; 4 | vec3 u_PickingColor; 5 | float u_PickingStage; 6 | vec3 u_CurrentSelectedId; 7 | float u_PickingThreshold; 8 | float u_PickingBuffer; 9 | float u_shaderPick; 10 | float u_activeMix; 11 | }; -------------------------------------------------------------------------------- /packages/core/src/shaders/post-processing/copy.glsl: -------------------------------------------------------------------------------- 1 | varying vec2 v_UV; 2 | 3 | uniform sampler2D u_Texture; 4 | 5 | void main() { 6 | gl_FragColor = vec4(texture2D(u_Texture, v_UV)); 7 | } -------------------------------------------------------------------------------- /packages/core/src/shaders/post-processing/quad.glsl: -------------------------------------------------------------------------------- 1 | attribute vec2 a_Position; 2 | 3 | varying vec2 v_UV; 4 | 5 | void main() { 6 | v_UV = 0.5 * (a_Position + 1.0); 7 | gl_Position = vec4(a_Position, 0., 1.); 8 | } -------------------------------------------------------------------------------- /packages/core/src/shaders/rotation_2d.glsl: -------------------------------------------------------------------------------- 1 | vec2 rotate_matrix(vec2 v, float a) { 2 | float b = a / 180.0 * 3.1415926535897932384626433832795; 3 | float s = sin(b); 4 | float c = cos(b); 5 | mat2 m = mat2(c, s, -s, c); 6 | return m * v; 7 | } -------------------------------------------------------------------------------- /packages/core/src/shaders/scene_uniforms.glsl: -------------------------------------------------------------------------------- 1 | layout(std140) uniform SceneUniforms { 2 | mat4 u_ViewMatrix; 3 | mat4 u_ProjectionMatrix; 4 | mat4 u_ViewProjectionMatrix; 5 | mat4 u_ModelMatrix; 6 | vec4 u_ViewportCenterProjection; 7 | vec3 u_PixelsPerDegree; 8 | float u_Zoom; 9 | vec3 u_PixelsPerDegree2; 10 | float u_ZoomScale; 11 | vec3 u_PixelsPerMeter; 12 | float u_CoordinateSystem; 13 | vec3 u_CameraPosition; 14 | float u_DevicePixelRatio; 15 | vec2 u_ViewportCenter; 16 | vec2 u_ViewportSize; 17 | float u_FocalDistance; 18 | }; 19 | -------------------------------------------------------------------------------- /packages/core/src/utils/sdf-2d.ts: -------------------------------------------------------------------------------- 1 | export const sdf2DFunctions = [ 2 | 'circle', 3 | 'triangle', 4 | 'square', 5 | 'pentagon', 6 | 'hexagon', 7 | 'octogon', 8 | 'hexagram', 9 | 'rhombus', 10 | 'vesica', 11 | ]; 12 | 13 | export function getShapeIndex(shape: string): number { 14 | return sdf2DFunctions.indexOf(shape); 15 | } 16 | -------------------------------------------------------------------------------- /packages/core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/l7/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/l7/src/index.ts: -------------------------------------------------------------------------------- 1 | import Source from '@antv/l7-source'; 2 | 3 | export * from '@antv/l7-component'; 4 | export * from '@antv/l7-core'; 5 | export * from '@antv/l7-layers'; 6 | export * from '@antv/l7-maps'; 7 | export * from '@antv/l7-scene'; 8 | export * from '@antv/l7-utils'; 9 | export * from './version'; 10 | export { Source }; 11 | -------------------------------------------------------------------------------- /packages/l7/src/version.ts: -------------------------------------------------------------------------------- 1 | const version = process.env.VERSION; 2 | export { version }; 3 | -------------------------------------------------------------------------------- /packages/l7/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/layers/.fatherrc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'father'; 2 | 3 | const isProduction = process.env.NODE_ENV === 'production'; 4 | 5 | export default defineConfig({ 6 | extends: '../../.fatherrc.base.ts', 7 | // 使用 babel 编译 esm/cjs 产物,启用 babel-plugin-inline-import 插件完成 glsl 内联打包 8 | esm: { transformer: 'babel' }, 9 | cjs: isProduction ? { transformer: 'babel' } : undefined, 10 | }); 11 | -------------------------------------------------------------------------------- /packages/layers/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/layers/__tests__/canvas/layer.spec.ts: -------------------------------------------------------------------------------- 1 | import CanvasLayer from '../../src/canvas/index'; 2 | describe('CanvasLayer', () => { 3 | const layer = new CanvasLayer({ 4 | name: 'layer', 5 | }); 6 | 7 | it('init', () => { 8 | expect(layer.type).toEqual('CanvasLayer'); 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /packages/layers/__tests__/core/layer.spec.ts: -------------------------------------------------------------------------------- 1 | import BaseLayer from '../../src/core/BaseLayer'; 2 | describe('BaseLayer', () => { 3 | const layer = new BaseLayer({ 4 | name: 'BaseLayer', 5 | }); 6 | 7 | it('init', () => { 8 | expect(layer.name).toEqual('BaseLayer'); 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /packages/layers/__tests__/mask/mask.spec.ts: -------------------------------------------------------------------------------- 1 | import MaskLayer from '../../src/mask/index'; 2 | 3 | describe('MaskLayer', () => { 4 | it('MaskLayer', () => { 5 | const layer = new MaskLayer(); 6 | 7 | expect(layer.type).toEqual('MaskLayer'); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /packages/layers/glsl.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.glsl' { 2 | const content: string; 3 | export default content; 4 | } 5 | -------------------------------------------------------------------------------- /packages/layers/src/canvas/models/constants.ts: -------------------------------------------------------------------------------- 1 | export type CanvasModelType = 'canvas2d' | 'webgl' | 'webgl2' | 'webgpu'; 2 | 3 | export const CanvasContextTypeMap: Record = { 4 | canvas2d: '2d', 5 | webgl: 'webgl', 6 | webgl2: 'webgl2', 7 | webgpu: 'webgpu', 8 | }; 9 | -------------------------------------------------------------------------------- /packages/layers/src/canvas/models/index.ts: -------------------------------------------------------------------------------- 1 | export * from './canvas'; 2 | export * from './constants'; 3 | -------------------------------------------------------------------------------- /packages/layers/src/core/constant.ts: -------------------------------------------------------------------------------- 1 | export const DefaultUniformStyleValue: { [key: string]: any } = { 2 | opacity: 1, 3 | stroke: [1, 0, 0, 1], 4 | offsets: [0, 0], 5 | rotation: 0, 6 | extrusionBase: 0, 7 | strokeOpacity: 1, 8 | thetaOffset: 0.314, 9 | }; 10 | 11 | export const DefaultUniformStyleType: { [key: string]: any } = { 12 | opacity: 'float', 13 | stroke: 'vec4', 14 | offsets: 'vec2', 15 | textOffset: 'vec2', 16 | rotation: 'float', 17 | extrusionBase: 'float', 18 | strokeOpacity: 'float', 19 | thetaOffset: 'float', 20 | }; 21 | -------------------------------------------------------------------------------- /packages/layers/src/earth/shaders/base/base_frag.glsl: -------------------------------------------------------------------------------- 1 | uniform sampler2D u_texture; 2 | 3 | in vec2 v_texCoord; 4 | in float v_lightWeight; 5 | out vec4 outputColor; 6 | 7 | void main() { 8 | vec4 color = texture(SAMPLER_2D(u_texture),vec2(v_texCoord.x,v_texCoord.y)); 9 | color.xyz = color.xyz * v_lightWeight; 10 | outputColor = color; 11 | } 12 | -------------------------------------------------------------------------------- /packages/layers/src/earth/shaders/bloomshpere/bloomsphere_frag.glsl: -------------------------------------------------------------------------------- 1 | 2 | in vec3 vVertexNormal; 3 | in vec4 v_Color; 4 | 5 | layout(std140) uniform commonUniforms { 6 | float u_opacity; 7 | }; 8 | out vec4 outputColor; 9 | #pragma include "scene_uniforms" 10 | void main() { 11 | float intensity = - dot(normalize(vVertexNormal), normalize(u_CameraPosition)); 12 | // 去除背面 13 | if(intensity > 1.0) intensity = 0.0; 14 | 15 | outputColor = vec4(v_Color.rgb, v_Color.a * intensity * u_opacity); 16 | } 17 | -------------------------------------------------------------------------------- /packages/layers/src/geometry/models/index.ts: -------------------------------------------------------------------------------- 1 | import BillBoardModel from './billboard'; 2 | import PlaneModel from './plane'; 3 | import SpriteModel from './sprite'; 4 | export type GeometryModelType = 'plane' | 'sprite' | 'billboard'; 5 | 6 | const GeometryModels: { [key in GeometryModelType]: any } = { 7 | plane: PlaneModel, 8 | sprite: SpriteModel, 9 | billboard: BillBoardModel, 10 | }; 11 | export default GeometryModels; 12 | -------------------------------------------------------------------------------- /packages/layers/src/geometry/shaders/billboard_frag.glsl: -------------------------------------------------------------------------------- 1 | layout(std140) uniform commonUniforms { 2 | vec2 u_size; 3 | float u_raisingHeight; 4 | float u_rotation; 5 | float u_opacity; 6 | }; 7 | 8 | uniform sampler2D u_texture; 9 | 10 | in vec2 v_uv; 11 | out vec4 outputColor; 12 | 13 | #pragma include "picking" 14 | void main() { 15 | outputColor = texture(SAMPLER_2D(u_texture), vec2(v_uv.x, 1.0 - v_uv.y)); 16 | outputColor.a *= u_opacity; 17 | outputColor = filterColor(outputColor); 18 | } 19 | -------------------------------------------------------------------------------- /packages/layers/src/heatmap/models/index.ts: -------------------------------------------------------------------------------- 1 | import GridModel from './grid'; 2 | import Grid3DModel from './grid3d'; 3 | import HeatMapModel from './heatmap'; 4 | import HexagonModel from './hexagon'; 5 | 6 | export type HeatMapModelType = 'heatmap' | 'heatmap3d' | 'hexagon' | 'grid' | 'grid3d'; 7 | 8 | const HeatMapModels: { [key in HeatMapModelType]: any } = { 9 | heatmap: HeatMapModel, 10 | heatmap3d: HeatMapModel, 11 | grid: GridModel, 12 | grid3d: Grid3DModel, 13 | hexagon: HexagonModel, 14 | }; 15 | export default HeatMapModels; 16 | -------------------------------------------------------------------------------- /packages/layers/src/heatmap/shaders/grid/grid_frag.glsl: -------------------------------------------------------------------------------- 1 | in vec4 v_color; 2 | 3 | #pragma include "scene_uniforms" 4 | #pragma include "picking" 5 | out vec4 outputColor; 6 | void main() { 7 | outputColor = v_color; 8 | outputColor = filterColor(outputColor); 9 | } 10 | -------------------------------------------------------------------------------- /packages/layers/src/heatmap/shaders/grid3d/grid_3d_frag.glsl: -------------------------------------------------------------------------------- 1 | in vec4 v_color; 2 | 3 | layout(std140) uniform commonUniforms { 4 | vec2 u_radius; 5 | float u_opacity; 6 | float u_coverage; 7 | float u_angle; 8 | }; 9 | 10 | #pragma include "scene_uniforms" 11 | #pragma include "picking" 12 | 13 | out vec4 outputColor; 14 | void main() { 15 | outputColor = v_color; 16 | outputColor = filterColor(outputColor); 17 | } 18 | -------------------------------------------------------------------------------- /packages/layers/src/heatmap/shaders/hexagon/hexagon_frag.glsl: -------------------------------------------------------------------------------- 1 | in vec4 v_color; 2 | 3 | #pragma include "picking" 4 | out vec4 outputColor; 5 | void main() { 6 | outputColor = v_color; 7 | outputColor = filterColor(outputColor); 8 | } 9 | -------------------------------------------------------------------------------- /packages/layers/src/image/models/index.ts: -------------------------------------------------------------------------------- 1 | import ImageModel from './image'; 2 | export type ImageModelType = 'image'; 3 | 4 | const ImageModels: { [key in ImageModelType]: any } = { 5 | image: ImageModel, 6 | }; 7 | 8 | export default ImageModels; 9 | -------------------------------------------------------------------------------- /packages/layers/src/line/shaders/flow/flow_line_frag.glsl: -------------------------------------------------------------------------------- 1 | // #extension GL_OES_standard_derivatives : enable 2 | 3 | in vec4 v_color; 4 | out vec4 outputColor; 5 | 6 | 7 | // line texture 8 | 9 | #pragma include "picking" 10 | 11 | void main() { 12 | outputColor = v_color; 13 | outputColor = filterColor(outputColor); 14 | } 15 | -------------------------------------------------------------------------------- /packages/layers/src/mask/models/index.ts: -------------------------------------------------------------------------------- 1 | import FillModel from './fill'; 2 | 3 | export type MaskModelType = 'fill'; 4 | 5 | const MaskModels: { [key in MaskModelType]: any } = { 6 | fill: FillModel, 7 | }; 8 | export default MaskModels; 9 | -------------------------------------------------------------------------------- /packages/layers/src/mask/shaders/mask_vert.glsl: -------------------------------------------------------------------------------- 1 | layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; 2 | 3 | layout(std140) uniform commonUniorm { 4 | vec4 u_color; 5 | float u_opacity; 6 | }; 7 | 8 | #pragma include "projection" 9 | 10 | void main() { 11 | vec4 project_pos = project_position(vec4(a_Position, 1.0)); 12 | gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); 13 | } 14 | 15 | -------------------------------------------------------------------------------- /packages/layers/src/plugins/LayerStylePlugin.ts: -------------------------------------------------------------------------------- 1 | import type { ILayer, ILayerPlugin } from '@antv/l7-core'; 2 | /** 3 | * 更新图层样式,初始图层相关配置 4 | */ 5 | export default class LayerStylePlugin implements ILayerPlugin { 6 | public apply(layer: ILayer) { 7 | layer.hooks.afterInit.tap('LayerStylePlugin', () => { 8 | const { autoFit, fitBoundsOptions } = layer.getLayerConfig(); 9 | // mask 初始化 10 | if (autoFit) { 11 | layer.fitBounds(fitBoundsOptions); 12 | } 13 | layer.styleNeedUpdate = false; 14 | }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/layers/src/point/shaders/normal/normal_frag.glsl: -------------------------------------------------------------------------------- 1 | in vec4 v_color; 2 | out vec4 outputColor; 3 | void main() { 4 | outputColor = v_color; 5 | } -------------------------------------------------------------------------------- /packages/layers/src/polygon/shaders/extrusion/polygon_extrusion_frag.glsl: -------------------------------------------------------------------------------- 1 | 2 | in vec4 v_Color; 3 | #pragma include "scene_uniforms" 4 | #pragma include "picking" 5 | out vec4 outputColor; 6 | void main() { 7 | 8 | outputColor = v_Color; 9 | outputColor = filterColor(outputColor); 10 | } 11 | -------------------------------------------------------------------------------- /packages/layers/src/polygon/shaders/fill/fill_frag.glsl: -------------------------------------------------------------------------------- 1 | in vec4 v_color; 2 | #pragma include "scene_uniforms" 3 | #pragma include "picking" 4 | out vec4 outputColor; 5 | void main() { 6 | outputColor = v_color; 7 | outputColor = filterColor(outputColor); 8 | } 9 | -------------------------------------------------------------------------------- /packages/layers/src/raster/models/index.ts: -------------------------------------------------------------------------------- 1 | import RasterModel from './raster'; 2 | import RasterRgbModel from './rasterRgb'; 3 | import RasterTerrainRGB from './rasterTerrainRgb'; 4 | export type RasterModelType = 'raster' | 'raster3d' | 'rasterRgb' | 'rasterTerrainRgb'; 5 | 6 | const RasterModels: { [key in RasterModelType]: any } = { 7 | raster: RasterModel, 8 | rasterRgb: RasterRgbModel, 9 | raster3d: RasterModel, 10 | rasterTerrainRgb: RasterTerrainRGB, 11 | }; 12 | 13 | export default RasterModels; 14 | -------------------------------------------------------------------------------- /packages/layers/src/shader/minify_frag.glsl: -------------------------------------------------------------------------------- 1 | layout(std140) uniform commonUniorm { 2 | vec4 u_color; 3 | float u_opacity; 4 | }; 5 | 6 | out vec4 outputColor; 7 | 8 | void main() { 9 | outputColor = u_color; 10 | outputColor.a *= u_opacity; 11 | } 12 | -------------------------------------------------------------------------------- /packages/layers/src/shader/minify_picking_frag.glsl: -------------------------------------------------------------------------------- 1 | uniform float u_opacity : 1.0; 2 | varying vec4 v_color; 3 | 4 | #pragma include "picking" 5 | 6 | void main() { 7 | gl_FragColor = v_color; 8 | gl_FragColor.a *= u_opacity; 9 | gl_FragColor = filterColor(gl_FragColor); 10 | } 11 | -------------------------------------------------------------------------------- /packages/layers/src/tile/core/TileDebugLayer.ts: -------------------------------------------------------------------------------- 1 | import BaseLayer from '../../core/BaseLayer'; 2 | import type { IBaseLayerStyleOptions } from '../../core/interface'; 3 | 4 | export default class TileDebugLayer extends BaseLayer { 5 | public type: string = 'TileDebugLayer'; 6 | public zIndex: number = 10000; 7 | public defaultSourceConfig = { 8 | data: [], 9 | options: { 10 | parser: { 11 | type: 'testTile', 12 | }, 13 | }, 14 | }; 15 | public async buildModels() { 16 | return; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/layers/src/tile/interaction/getFeatureData.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antvis/L7/79e212e399c05d7b0b12db380d5f8bde80ec4e70/packages/layers/src/tile/interaction/getFeatureData.ts -------------------------------------------------------------------------------- /packages/layers/src/tile/utils/constants.ts: -------------------------------------------------------------------------------- 1 | // TileLayer 需要代理的子图层的方法 2 | // 一般都是在 BaseLayer 上的方法 3 | export const ProxyFuncs = [ 4 | /** 5 | * 1. 需要作用到所属子图层才会生效的方法 6 | * 2. 不需要主动重新创建 model 的方法 7 | */ 8 | 'shape', 9 | 'color', 10 | 'size', 11 | 'style', 12 | 'animate', 13 | 'filter', 14 | 'rotate', 15 | 'scale', 16 | 'setBlend', 17 | 'setSelect', 18 | 'setActive', 19 | 'disableMask', 20 | 'enableMask', 21 | 'addMask', 22 | 'removeMask', 23 | ]; 24 | -------------------------------------------------------------------------------- /packages/layers/src/tile/utils/utils.ts: -------------------------------------------------------------------------------- 1 | import type { ILayer } from '@antv/l7-core'; 2 | 3 | export const tileVectorParser = ['mvt', 'geojsonvt', 'testTile']; 4 | 5 | /** 6 | * 判断当前图层是否是瓦片图层 7 | * @param layer 8 | * @returns 9 | */ 10 | export function isTileGroup(layer: ILayer) { 11 | const source = layer.getSource(); 12 | return tileVectorParser.includes(source.parser.type); 13 | } 14 | -------------------------------------------------------------------------------- /packages/layers/src/utils/load-image.ts: -------------------------------------------------------------------------------- 1 | export async function loadImage(url: string): Promise { 2 | // @ts-ignore 3 | if (window.createImageBitmap) { 4 | const response = await fetch(url); 5 | const imageBitmap = await createImageBitmap(await response.blob()); 6 | return imageBitmap; 7 | } else { 8 | const image = new window.Image(); 9 | return new Promise((res) => { 10 | image.onload = () => res(image); 11 | image.src = url; 12 | image.crossOrigin = 'Anonymous'; 13 | }); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/layers/src/wind/models/index.ts: -------------------------------------------------------------------------------- 1 | import WindModel from './wind'; 2 | export type WindModelType = 'wind'; 3 | 4 | const WindModels: { [key in WindModelType]: any } = { 5 | wind: WindModel, 6 | }; 7 | export default WindModels; 8 | -------------------------------------------------------------------------------- /packages/layers/src/wind/shaders/wind_frag.glsl: -------------------------------------------------------------------------------- 1 | precision mediump float; 2 | uniform float u_opacity: 1.0; 3 | uniform sampler2D u_texture; 4 | varying vec2 v_texCoord; 5 | void main() { 6 | vec4 color = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)); 7 | gl_FragColor = color; 8 | gl_FragColor.a *= u_opacity; 9 | } 10 | -------------------------------------------------------------------------------- /packages/layers/src/wind/shaders/wind_vert.glsl: -------------------------------------------------------------------------------- 1 | precision highp float; 2 | uniform mat4 u_ModelMatrix; 3 | 4 | layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; 5 | layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; 6 | 7 | varying vec2 v_texCoord; 8 | #pragma include "projection" 9 | void main() { 10 | v_texCoord = a_Uv; 11 | vec4 project_pos = project_position(vec4(a_Position, 1.0)); 12 | 13 | gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0)); 14 | } 15 | -------------------------------------------------------------------------------- /packages/layers/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/map/.fatherrc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'father'; 2 | 3 | const isProduction = process.env.NODE_ENV === 'production'; 4 | 5 | export default defineConfig({ 6 | extends: '../../.fatherrc.base.ts', 7 | // 使用 babel 编译 esm/cjs 产物,启用 transform-import-css-l7 插件完成 CSS 内联打包 8 | esm: { transformer: 'babel' }, 9 | cjs: isProduction ? { transformer: 'babel' } : undefined, 10 | }); 11 | -------------------------------------------------------------------------------- /packages/map/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/map/legacy/README.md: -------------------------------------------------------------------------------- 1 | ## Map 2 | 3 | Map fork from [mapbox-gl-js@1.x](https://github.com/mapbox/mapbox-gl-js/tree/release-v1.13.3), keep event loop, responds user interaction and updates the internal state of the map (current viewport, camera angle, etc.) 4 | -------------------------------------------------------------------------------- /packages/map/legacy/handler/events/event.ts: -------------------------------------------------------------------------------- 1 | import { lodashUtil } from '@antv/l7-utils'; 2 | const { merge } = lodashUtil; 3 | 4 | export class Event { 5 | public type: string; 6 | constructor(type: string, data = {}) { 7 | merge(this, data); 8 | this.type = type; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/map/legacy/handler/events/index.ts: -------------------------------------------------------------------------------- 1 | import MapMouseEvent from './map_mouse_event'; 2 | import MapTouchEvent from './map_touch_event'; 3 | import MapWheelEvent from './map_wheel_event'; 4 | 5 | export { MapMouseEvent, MapTouchEvent, MapWheelEvent }; 6 | -------------------------------------------------------------------------------- /packages/map/legacy/handler/events/render_event.ts: -------------------------------------------------------------------------------- 1 | import { Event } from './event'; 2 | export default class RenderFrameEvent extends Event { 3 | public type: string = 'renderFrame'; 4 | public timeStamp: number; 5 | 6 | constructor(type: string, timeStamp: number) { 7 | super(type); 8 | this.timeStamp = timeStamp; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/map/legacy/handler/handler_util.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | import type Point from '../geo/point'; 3 | 4 | export function indexTouches(touches: Touch[], points: Point[]) { 5 | const obj: { [key: string]: any } = {}; 6 | for (let i = 0; i < touches.length; i++) { 7 | obj[touches[i].identifier] = points[i]; 8 | } 9 | return obj; 10 | } 11 | -------------------------------------------------------------------------------- /packages/map/legacy/handler/mouse/index.ts: -------------------------------------------------------------------------------- 1 | import MousePanHandler from './mousepan_handler'; 2 | import MouseRotateHandler from './mousepitch_hander'; 3 | import MousePitchHandler from './mouserotate_hander'; 4 | 5 | export { MousePanHandler, MousePitchHandler, MouseRotateHandler }; 6 | -------------------------------------------------------------------------------- /packages/map/legacy/handler/mouse/util.ts: -------------------------------------------------------------------------------- 1 | export const LEFT_BUTTON = 0; 2 | export const RIGHT_BUTTON = 2; 3 | 4 | // the values for each button in MouseEvent.buttons 5 | export const BUTTONS_FLAGS: { [key: number]: number } = { 6 | [LEFT_BUTTON]: 1, 7 | [RIGHT_BUTTON]: 2, 8 | }; 9 | 10 | export function buttonStillPressed(e: MouseEvent, button: 1 | 2) { 11 | const flag = BUTTONS_FLAGS[button]; 12 | return e.buttons === undefined || (e.buttons & flag) !== flag; 13 | } 14 | -------------------------------------------------------------------------------- /packages/map/legacy/handler/touch/index.ts: -------------------------------------------------------------------------------- 1 | import TouchPanHandler from './touch_pan'; 2 | import TouchPitchHandler from './touch_pitch'; 3 | import TouchRotateHandler from './touch_rotate'; 4 | import TouchZoomHandler from './touch_zoom'; 5 | 6 | export { TouchPanHandler, TouchPitchHandler, TouchRotateHandler, TouchZoomHandler }; 7 | -------------------------------------------------------------------------------- /packages/map/src/index.ts: -------------------------------------------------------------------------------- 1 | export { MercatorCoordinate } from './map/geo/mercator_coordinate'; 2 | export { Map } from './map/map'; 3 | export type { MapOptions } from './map/map'; 4 | -------------------------------------------------------------------------------- /packages/map/src/map/handler/handler_util.ts: -------------------------------------------------------------------------------- 1 | import type Point from '@mapbox/point-geometry'; 2 | 3 | export function indexTouches(touches: Array, points: Array) { 4 | if (touches.length !== points.length) 5 | throw new Error( 6 | `The number of touches and points are not equal - touches ${touches.length}, points ${points.length}`, 7 | ); 8 | const obj = {}; 9 | for (let i = 0; i < touches.length; i++) { 10 | obj[touches[i].identifier] = points[i]; 11 | } 12 | return obj; 13 | } 14 | -------------------------------------------------------------------------------- /packages/map/style.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.css' { 2 | const classes: { readonly [key: string]: string }; 3 | export default classes; 4 | } 5 | declare module '*.less' { 6 | const classes: { readonly [key: string]: string }; 7 | export default classes; 8 | } 9 | -------------------------------------------------------------------------------- /packages/map/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "strict": false 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/maps/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/maps/src/amap-next/index.ts: -------------------------------------------------------------------------------- 1 | import BaseMapWrapper from '../utils/BaseMapWrapper'; 2 | import MapService from './map'; 3 | 4 | export default class AMap2Wrapper extends BaseMapWrapper { 5 | protected getServiceConstructor() { 6 | return MapService; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/maps/src/amap-next/logo.css: -------------------------------------------------------------------------------- 1 | .amap-logo { 2 | display: none !important; 3 | } 4 | .amap-copyright { 5 | display: none !important; 6 | } 7 | .amap-overlays { 8 | z-index: 3 !important; 9 | } 10 | -------------------------------------------------------------------------------- /packages/maps/src/bmap/index.ts: -------------------------------------------------------------------------------- 1 | import BaseMapWrapper from '../utils/BaseMapWrapper'; 2 | import MapService from './map'; 3 | export default class MapboxWrapper extends BaseMapWrapper { 4 | protected getServiceConstructor() { 5 | return MapService; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/maps/src/bmap/logo.css: -------------------------------------------------------------------------------- 1 | .BMap_cpyCtrl .anchorBL { 2 | display: none !important; 3 | } 4 | 5 | .anchorBL { 6 | display: none !important; 7 | } 8 | -------------------------------------------------------------------------------- /packages/maps/src/earth/index.ts: -------------------------------------------------------------------------------- 1 | import type { Map } from '@antv/l7-map'; 2 | import BaseMapWrapper from '../utils/BaseMapWrapper'; 3 | import MapService from './map'; 4 | export default class EarthWrapper extends BaseMapWrapper { 5 | protected getServiceConstructor() { 6 | return MapService; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/maps/src/gmap/index.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | import BaseMapWrapper from '../utils/BaseMapWrapper'; 3 | import GMapService from './map'; 4 | 5 | export default class GMapWrapper extends BaseMapWrapper { 6 | protected getServiceConstructor() { 7 | return GMapService; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/maps/src/gmap/logo.css: -------------------------------------------------------------------------------- 1 | img[src*='//mapapi.qq.com/web/jsapi/logo/logo_def.png'],.logo-text 2 | { 3 | display: none !important; 4 | } 5 | -------------------------------------------------------------------------------- /packages/maps/src/map/index.ts: -------------------------------------------------------------------------------- 1 | import type { Map } from '@antv/l7-map'; 2 | import BaseMapWrapper from '../utils/BaseMapWrapper'; 3 | import MapService from './map'; 4 | export default class MapboxWrapper extends BaseMapWrapper { 5 | protected getServiceConstructor() { 6 | return MapService; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/maps/src/mapbox/index.ts: -------------------------------------------------------------------------------- 1 | import type { Map } from 'mapbox-gl'; 2 | import type { IMapboxInstance } from '../types'; 3 | import BaseMapWrapper from '../utils/BaseMapWrapper'; 4 | import './logo.css'; 5 | import MapboxService from './map'; 6 | export default class MapboxWrapper extends BaseMapWrapper { 7 | protected getServiceConstructor() { 8 | return MapboxService; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/maps/src/mapbox/logo.css: -------------------------------------------------------------------------------- 1 | .mapboxgl-ctrl-logo { 2 | display: none !important; 3 | } 4 | -------------------------------------------------------------------------------- /packages/maps/src/maplibre/index.ts: -------------------------------------------------------------------------------- 1 | import type { Map } from 'maplibre-gl'; 2 | import type { IMapboxInstance } from '../types'; 3 | import BaseMapWrapper from '../utils/BaseMapWrapper'; 4 | import MaplibreService from './map'; 5 | export default class MapboxWrapper extends BaseMapWrapper { 6 | protected getServiceConstructor() { 7 | return MaplibreService; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/maps/src/tdtmap/index.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | import BaseMapWrapper from '../utils/BaseMapWrapper'; 3 | import TdtMapService from './map'; 4 | 5 | export default class TdtMapWrapper extends BaseMapWrapper { 6 | // @ts-ignore 7 | protected getServiceConstructor() { 8 | return TdtMapService; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/maps/src/tdtmap/logo.css: -------------------------------------------------------------------------------- 1 | img[src*='//mapapi.qq.com/web/jsapi/logo/logo_def.png'],.logo-text 2 | { 3 | display: none !important; 4 | } 5 | -------------------------------------------------------------------------------- /packages/maps/src/tmap/index.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | import BaseMapWrapper from '../utils/BaseMapWrapper'; 3 | import TMapService from './map'; 4 | 5 | export default class TMapWrapper extends BaseMapWrapper { 6 | protected getServiceConstructor() { 7 | return TMapService; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/maps/src/tmap/logo.css: -------------------------------------------------------------------------------- 1 | img[src*='//mapapi.qq.com/web/jsapi/logo/logo_def.png'],.logo-text 2 | { 3 | display: none !important; 4 | } 5 | 6 | .tencent-map > canvas + div { 7 | z-index: 3 !important; 8 | } 9 | -------------------------------------------------------------------------------- /packages/maps/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | import BaseMapService from './BaseMapService'; 2 | import BaseMapWrapper from './BaseMapWrapper'; 3 | export { BaseMapService, BaseMapWrapper }; 4 | -------------------------------------------------------------------------------- /packages/maps/style.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.css' { 2 | const classes: { readonly [key: string]: string }; 3 | export default classes; 4 | } 5 | declare module '*.less' { 6 | const classes: { readonly [key: string]: string }; 7 | export default classes; 8 | } 9 | -------------------------------------------------------------------------------- /packages/maps/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "types": [ 5 | "@types/amap-js-api", 6 | "@types/bmapgl", 7 | "@types/google.maps", 8 | "@map-component/tmap-types" 9 | ] 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/renderer/.fatherrc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'father'; 2 | 3 | export default defineConfig({ 4 | extends: '../../.fatherrc.base.ts', 5 | }); 6 | -------------------------------------------------------------------------------- /packages/renderer/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/renderer/__tests__/index.spec.ts: -------------------------------------------------------------------------------- 1 | import { DeviceRendererService } from '../src/index'; 2 | 3 | describe('template', () => { 4 | it('DeviceRenderer', () => { 5 | new DeviceRendererService(); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /packages/renderer/glsl.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.glsl' { 2 | const content: string; 3 | export default content; 4 | } 5 | -------------------------------------------------------------------------------- /packages/renderer/src/device/utils/pipeline.ts: -------------------------------------------------------------------------------- 1 | export function pipelineEquals() {} 2 | -------------------------------------------------------------------------------- /packages/renderer/src/device/utils/webgl.ts: -------------------------------------------------------------------------------- 1 | // @see https://github.com/visgl/luma.gl/blob/30a1039573576d73641de7c1ba222e8992eb526e/modules/gltools/src/utils/webgl-checks.ts#L22 2 | export function isWebGL2( 3 | gl: WebGL2RenderingContext | WebGLRenderingContext, 4 | ): gl is WebGL2RenderingContext { 5 | if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) { 6 | return true; 7 | } 8 | // Look for debug contexts, headless gl etc 9 | // @ts-ignore 10 | return Boolean(gl && gl._version === 2); 11 | } 12 | -------------------------------------------------------------------------------- /packages/renderer/src/index.ts: -------------------------------------------------------------------------------- 1 | import DeviceRendererService from './device'; 2 | import ReglRendererService from './regl'; 3 | 4 | export { DeviceRendererService, ReglRendererService }; 5 | -------------------------------------------------------------------------------- /packages/renderer/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/scene/.fatherrc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'father'; 2 | 3 | export default defineConfig({ 4 | extends: '../../.fatherrc.base.ts', 5 | }); 6 | -------------------------------------------------------------------------------- /packages/scene/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/scene/__tests__/l7_map.spec.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | describe('template', () => { 3 | it('scene l7 map method', () => { 4 | expect(2).toEqual(2); 5 | }); 6 | }); 7 | -------------------------------------------------------------------------------- /packages/scene/src/ILayerManager.ts: -------------------------------------------------------------------------------- 1 | import type { ILayer } from '@antv/l7-core'; 2 | 3 | export default interface ILayerManager { 4 | enableShaderPick: () => void; 5 | diasbleShaderPick: () => void; 6 | addLayer(layer: ILayer): void; 7 | 8 | getLayers(): ILayer[]; 9 | 10 | getLayer(id: string): ILayer | undefined; 11 | 12 | removeLayer(layer: ILayer): void; 13 | } 14 | -------------------------------------------------------------------------------- /packages/scene/src/IPostProcessingPassPluggable.ts: -------------------------------------------------------------------------------- 1 | import type { IPostProcessingPass } from '@antv/l7-core'; 2 | 3 | export default interface IPostProcessingPassPluggable { 4 | /** 5 | * 注册自定义后处理效果 6 | * @param constructor 效果构造函数 7 | * @param name 效果名,便于在 Layer 中引用 8 | */ 9 | registerPostProcessingPass( 10 | constructor: new (...args: any[]) => IPostProcessingPass, 11 | name: string, 12 | ): void; 13 | } 14 | -------------------------------------------------------------------------------- /packages/scene/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/source/.fatherrc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'father'; 2 | 3 | export default defineConfig({ 4 | extends: '../../.fatherrc.base.ts', 5 | }); 6 | -------------------------------------------------------------------------------- /packages/source/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/source/__tests__/data/json.ts: -------------------------------------------------------------------------------- 1 | import type { IJsonData } from '../../src/interface'; 2 | const data1: IJsonData = [ 3 | { 4 | lng: 112.323, 5 | lat: 30.456, 6 | name: 'dog', 7 | }, 8 | { 9 | lng: 112.323, 10 | lat: 30.456, 11 | name: 'cat', 12 | }, 13 | ]; 14 | const data2: IJsonData = [ 15 | { 16 | coord: [112.323, 30.456], 17 | name: 'dog', 18 | }, 19 | { 20 | coord: [110.234, 1234], 21 | name: 'cat', 22 | }, 23 | ]; 24 | export { data1, data2 }; 25 | -------------------------------------------------------------------------------- /packages/source/__tests__/parser/csv.spec.ts: -------------------------------------------------------------------------------- 1 | import csv from '../../src/parser/csv'; 2 | import csvData from '../data/csv'; 3 | describe('parser.json', () => { 4 | it('parser json x, y ', () => { 5 | const result = csv(csvData, { 6 | type: 'json', 7 | x: 'lng', 8 | y: 'lat', 9 | }); 10 | expect(result.dataArray.length).toEqual(21); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /packages/source/__tests__/utils/statistics.spec.ts: -------------------------------------------------------------------------------- 1 | import * as stas from '../../src/utils/statistics'; 2 | describe('source-utils-statisics', () => { 3 | it('statisics.max', () => { 4 | expect(stas.max([4, 6, 8])).toEqual(8); 5 | }); 6 | it('statisics.min', () => { 7 | expect(stas.min([4, 6, 8])).toEqual(4); 8 | }); 9 | it('statisics.sum', () => { 10 | expect(stas.sum([4, 6, 8])).toEqual(18); 11 | }); 12 | it('statisics.mean', () => { 13 | expect(stas.mean([4, 6, 8])).toEqual(6); 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /packages/source/src/parser/csv.ts: -------------------------------------------------------------------------------- 1 | import type { IJsonData, IParserCfg, IParserData } from '@antv/l7-core'; 2 | import { csvParse } from 'd3-dsv'; 3 | import json from './json'; 4 | export default function csv(data: string, cfg: IParserCfg): IParserData { 5 | const csvData: IJsonData = csvParse(data); 6 | return json(csvData, cfg); 7 | } 8 | -------------------------------------------------------------------------------- /packages/source/src/source/baseSource.ts: -------------------------------------------------------------------------------- 1 | import type { ITileSource } from '../interface'; 2 | export default abstract class BaseSource implements ITileSource { 3 | protected x: number; 4 | protected y: number; 5 | protected z: number; 6 | constructor(data: any, x: number, y: number, z: number) { 7 | this.x = x; 8 | this.y = y; 9 | this.z = z; 10 | } 11 | public abstract getTileData(layer: string): any; 12 | } 13 | -------------------------------------------------------------------------------- /packages/source/src/source/index.ts: -------------------------------------------------------------------------------- 1 | export * from '../interface'; 2 | export { default as VectorSource } from './vector'; 3 | -------------------------------------------------------------------------------- /packages/source/src/transform/filter.ts: -------------------------------------------------------------------------------- 1 | import type { IParserData } from '@antv/l7-core'; 2 | export function filter(data: IParserData, options: { [key: string]: any }) { 3 | const { callback } = options; 4 | if (callback) { 5 | data.dataArray = data.dataArray.filter(callback); 6 | } 7 | return data; 8 | } 9 | -------------------------------------------------------------------------------- /packages/source/src/transform/map.ts: -------------------------------------------------------------------------------- 1 | import type { IParserData } from '@antv/l7-core'; 2 | export function map(data: IParserData, options: { [key: string]: any }) { 3 | const { callback } = options; 4 | if (callback) { 5 | data.dataArray = data.dataArray.map(callback); 6 | } 7 | return data; 8 | } 9 | -------------------------------------------------------------------------------- /packages/source/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/test-utils/.fatherrc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'father'; 2 | 3 | export default defineConfig({ 4 | extends: '../../.fatherrc.base.ts', 5 | }); 6 | -------------------------------------------------------------------------------- /packages/test-utils/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/test-utils/README.md: -------------------------------------------------------------------------------- 1 | # `test-utils` 2 | 3 | > TODO: description 4 | 5 | ## Usage 6 | 7 | ``` 8 | const testUtils = require('test-utils'); 9 | 10 | // TODO: DEMONSTRATE API 11 | ``` 12 | -------------------------------------------------------------------------------- /packages/test-utils/src/gl-context.ts: -------------------------------------------------------------------------------- 1 | import gl from 'gl'; 2 | 3 | /** Test context */ 4 | export const glContext = gl(1, 1, { 5 | preserveDrawingBuffer: true, 6 | antialias: false, 7 | stencil: true, 8 | }); 9 | -------------------------------------------------------------------------------- /packages/test-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | export { glContext } from './gl-context'; 2 | export { TestScene } from './test-scene'; 3 | -------------------------------------------------------------------------------- /packages/test-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/three/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/three/README.md: -------------------------------------------------------------------------------- 1 | # `three` 2 | 3 | > L7 ThreeJS 4 | > 通过ThreeJS 扩展加载3D模型 5 | 6 | ## Usage 7 | 8 | ``` 9 | import three = require('l7-three'); 10 | 11 | ``` 12 | -------------------------------------------------------------------------------- /packages/three/src/index.ts: -------------------------------------------------------------------------------- 1 | import ThreeLayer from './core/baseLayer'; 2 | // import { IThreeJSLayer } from './core/IThreeJSLayer'; 3 | import ThreeRender from './core/threeRender'; 4 | export { ThreeLayer, ThreeRender }; 5 | -------------------------------------------------------------------------------- /packages/three/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/utils/.fatherrc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'father'; 2 | 3 | export default defineConfig({ 4 | extends: '../../.fatherrc.base.ts', 5 | }); 6 | -------------------------------------------------------------------------------- /packages/utils/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /es 3 | /dist 4 | -------------------------------------------------------------------------------- /packages/utils/src/config.ts: -------------------------------------------------------------------------------- 1 | import type { Cancelable, RequestParameters, ResponseCallback } from './ajax'; 2 | 3 | export type IProtocolHandler = ( 4 | requestParameters: RequestParameters, 5 | callback: ResponseCallback, 6 | ) => Cancelable; 7 | 8 | export interface IConfig { 9 | REGISTERED_PROTOCOLS: { [x: string]: IProtocolHandler }; 10 | } 11 | 12 | const SceneConifg: IConfig = { 13 | REGISTERED_PROTOCOLS: {}, 14 | }; 15 | 16 | export { SceneConifg }; 17 | -------------------------------------------------------------------------------- /packages/utils/src/lineAtOffset/interface.ts: -------------------------------------------------------------------------------- 1 | export type Source = any; 2 | export type ILineShape = 'line' | 'arc' | 'arc3d' | 'greatcircle'; 3 | export type IThetaOffset = string | number | undefined; 4 | export type Point = number[]; 5 | 6 | export interface ILineAtOffset { 7 | offset: number; 8 | shape: ILineShape; 9 | thetaOffset?: IThetaOffset; 10 | featureId?: number | undefined; 11 | segmentNumber?: number; 12 | autoFit?: boolean; 13 | } 14 | -------------------------------------------------------------------------------- /packages/utils/src/math.ts: -------------------------------------------------------------------------------- 1 | export function isNumber(n: any) { 2 | return typeof n === 'number'; 3 | } 4 | 5 | /** 6 | * Calculate the low part of a WebGL 64 bit float 7 | * @param x {number} - the input float number 8 | * @returns {number} - the lower 32 bit of the number 9 | */ 10 | export function fp64LowPart(x: number): number { 11 | return x - Math.fround(x); 12 | } 13 | -------------------------------------------------------------------------------- /packages/utils/src/tileset-manager/index.ts: -------------------------------------------------------------------------------- 1 | export { SourceTile } from './tile'; 2 | export { TilesetManager } from './tileset-manager'; 3 | export * from './types'; 4 | export * from './utils/lonlat-tile'; 5 | export * from './utils/tile-url'; 6 | -------------------------------------------------------------------------------- /packages/utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | # all packages 3 | - 'packages/*' 4 | # website 5 | - 'site' 6 | -------------------------------------------------------------------------------- /scripts/clean-deps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | pnpm --parallel -r run clean 4 | 5 | pnpm --parallel -r exec rm -rf node_modules 6 | 7 | rm -rf node_modules yarn.lock package-lock.json pnpm-lock.yaml 8 | -------------------------------------------------------------------------------- /scripts/eslint-fix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | pnpm exec eslint examples/ __tests__/ --fix 4 | 5 | pnpm --filter !@antv/l7-site --parallel -r lint --fix 6 | -------------------------------------------------------------------------------- /scripts/eslint-lint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | pnpm exec eslint examples/ __tests__/ 4 | 5 | pnpm --filter !@antv/l7-site --parallel -r lint 6 | -------------------------------------------------------------------------------- /scripts/format-check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | pnpm exec prettier './**/*.{ts,tsx,js,jsx,json,md,css,less}' --check 4 | -------------------------------------------------------------------------------- /scripts/format-fix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | pnpm exec prettier './**/*.{ts,tsx,js,jsx,json,md,css,less}' --write 4 | -------------------------------------------------------------------------------- /scripts/intranet-sync.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | pnpm --filter !@antv/l7-test-utils --filter "./packages/*" --parallel -r exec tnpm sync 4 | -------------------------------------------------------------------------------- /site/.dumi/less.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.css' { 2 | const classes: { readonly [key: string]: string }; 3 | export default classes; 4 | } 5 | declare module '*.less' { 6 | const classes: { readonly [key: string]: string }; 7 | export default classes; 8 | } 9 | declare module '*.module.less' { 10 | const classes: { readonly [key: string]: string }; 11 | export default classes; 12 | } 13 | -------------------------------------------------------------------------------- /site/.dumi/pages/404.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { NotFound as NotFoundPage } from '../slots/404'; 3 | import { Footer } from '../slots/Footer'; 4 | import { Header } from '../slots/Header'; 5 | import { SEO } from '../slots/SEO'; 6 | 7 | /** 8 | * 404 页面 9 | */ 10 | const NotFound = () => ( 11 | <> 12 | 13 |
14 | 15 |