mirror of https://gitee.com/antv-l7/antv-l7
Feat earcut (#1536)
* fix: 文本更新 * fix: iconfont 更新 * fix: 移除console * docs: scene 增加 setzoom * fix: 地图实例demo * fix: polygon triangle * fix: polygon triangle dimensions * fix: 高德地图v2 坐标转换
This commit is contained in:
parent
4fa5a324db
commit
cac672016c
|
@ -1,19 +0,0 @@
|
||||||
name: 🤖 Sync to Gitee Mirror
|
|
||||||
|
|
||||||
on: [push]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: 🔁 Sync to Gitee
|
|
||||||
uses: wearerequired/git-mirror-action@master
|
|
||||||
env:
|
|
||||||
# 注意在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY
|
|
||||||
SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }}
|
|
||||||
with:
|
|
||||||
# 注意替换为你的 GitHub 源仓库地址
|
|
||||||
source-repo: 'git@github.com:antvis/L7.git'
|
|
||||||
# 注意替换为你的 Gitee 目标仓库地址
|
|
||||||
destination-repo: 'git@gitee.com:antv-l7/antv-l7.git'
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ export default () => {
|
||||||
|
|
||||||
const scene = new Scene({
|
const scene = new Scene({
|
||||||
id: 'map',
|
id: 'map',
|
||||||
map: new GaodeMap({
|
map: new Map({
|
||||||
style: 'light',
|
style: 'light',
|
||||||
pitch: 0,
|
pitch: 0,
|
||||||
center: [ 114.07737552216226, 22.542656745583486 ],
|
center: [ 114.07737552216226, 22.542656745583486 ],
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Scene, PolygonLayer, LineLayer, PointLayer } from "@antv/l7";
|
import { Scene, PolygonLayer, LineLayer, PointLayer } from "@antv/l7";
|
||||||
import { Mapbox } from "@antv/l7-maps";
|
import { GaodeMap } from "@antv/l7-maps";
|
||||||
import React, { useEffect } from 'react';
|
import React, { useEffect } from 'react';
|
||||||
const list = {
|
const list = {
|
||||||
portrKey: "PROVINCE_CITY_DITU",
|
portrKey: "PROVINCE_CITY_DITU",
|
||||||
|
@ -2494,7 +2494,7 @@ export default () => {
|
||||||
useEffect( () => {
|
useEffect( () => {
|
||||||
const scene = new Scene({
|
const scene = new Scene({
|
||||||
id: "map",
|
id: "map",
|
||||||
map: new Mapbox({
|
map: new GaodeMap({
|
||||||
pitch: 0,
|
pitch: 0,
|
||||||
style: "blank",
|
style: "blank",
|
||||||
center: [116.368652, 39.93866],
|
center: [116.368652, 39.93866],
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,8 @@
|
||||||
import { Scene, PointLayer } from '@antv/l7';
|
import { Scene, PointLayer } from '@antv/l7';
|
||||||
import { GaodeMap } from '@antv/l7-maps';
|
import { GaodeMap } from '@antv/l7-maps';
|
||||||
|
|
||||||
window.onLoad = function() {
|
function initMap() {
|
||||||
|
// 全局加载高德地图API
|
||||||
const map = new AMap.Map('map', {
|
const map = new AMap.Map('map', {
|
||||||
viewMode: '3D',
|
viewMode: '3D',
|
||||||
mapStyle: 'amap://styles/darkblue',
|
mapStyle: 'amap://styles/darkblue',
|
||||||
|
@ -49,11 +50,5 @@ window.onLoad = function() {
|
||||||
scene.addLayer(pointLayer);
|
scene.addLayer(pointLayer);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
initMap();
|
||||||
const url = 'https://webapi.amap.com/maps?v=1.4.15&key=15cd8a57710d40c9b7c0e3cc120f1200&callback=onLoad';
|
|
||||||
// const url = 'https://webapi.amap.com/maps?v=2.0&key=ff533602d57df6f8ab3b0fea226ae52f&callback=onLoad';
|
|
||||||
const jsapi = document.createElement('script');
|
|
||||||
jsapi.charset = 'utf-8';
|
|
||||||
jsapi.src = url;
|
|
||||||
document.head.appendChild(jsapi);
|
|
|
@ -66,9 +66,34 @@ export function polygonFillTriangulation(feature: IEncodeFeature) {
|
||||||
const { coordinates } = feature;
|
const { coordinates } = feature;
|
||||||
const flattengeo = earcut.flatten(coordinates as number[][][]);
|
const flattengeo = earcut.flatten(coordinates as number[][][]);
|
||||||
const { vertices, dimensions, holes } = flattengeo;
|
const { vertices, dimensions, holes } = flattengeo;
|
||||||
|
for (let i = 0; i < vertices.length; i += dimensions) {
|
||||||
|
vertices[i + 1] = project_y(vertices[i + 1]);
|
||||||
|
}
|
||||||
|
// https://github.com/mapbox/earcut/issues/159
|
||||||
|
const triangles = earcut(vertices, holes, dimensions);
|
||||||
|
for (let i = 0; i < vertices.length; i += dimensions) {
|
||||||
|
vertices[i + 1] = un_project_y(vertices[i + 1]);
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
indices: earcut(vertices, holes, dimensions),
|
indices: triangles,
|
||||||
vertices,
|
vertices,
|
||||||
size: dimensions,
|
size: dimensions,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function project_y(y: number) {
|
||||||
|
|
||||||
|
if(y > 85 || y<-85) {
|
||||||
|
return y
|
||||||
|
}
|
||||||
|
return Math.log(Math.tan((Math.PI * y) / 360));
|
||||||
|
}
|
||||||
|
|
||||||
|
function un_project_y(y: number) {
|
||||||
|
|
||||||
|
if(y > 85 || y<-85) {
|
||||||
|
return y
|
||||||
|
}
|
||||||
|
return (Math.atan(Math.exp(y)) * 360) / Math.PI;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue