mirror of https://gitee.com/antv-l7/antv-l7
test: 新增marker测试用例 (#1309)
Co-authored-by: Dreammy23 <echo.cmy@antgroup.com>
This commit is contained in:
parent
893379f0e1
commit
f2a35106cb
|
@ -0,0 +1,103 @@
|
|||
### markerLayer
|
||||
|
||||
```tsx
|
||||
import { Marker, MarkerLayer, Scene } from '@antv/l7';
|
||||
import { GaodeMap, GaodeMapV2, Mapbox } from '@antv/l7-maps';
|
||||
import React, { useEffect } from 'react';
|
||||
|
||||
export default () => {
|
||||
useEffect(() => {
|
||||
const gaodeV1Scene = new Scene({
|
||||
id: 'gaodeV1',
|
||||
map: new GaodeMap({
|
||||
center: [105, 30.258134],
|
||||
zoom: 2,
|
||||
}),
|
||||
});
|
||||
// const gaodeV2Scene = new Scene({
|
||||
// id: 'gaodeV2',
|
||||
// map: new GaodeMapV2({
|
||||
// center: [105, 30.258134],
|
||||
// zoom: 3,
|
||||
// }),
|
||||
// });
|
||||
const mapboxScene = new Scene({
|
||||
id: 'mapbox',
|
||||
map: new Mapbox({
|
||||
center: [120, 30],
|
||||
zoom: 2,
|
||||
}),
|
||||
});
|
||||
|
||||
addMarkers(gaodeV1Scene);
|
||||
// addMarkers(gaodeV2Scene);
|
||||
addMarkers(mapboxScene);
|
||||
}, []);
|
||||
|
||||
const addMarkers = (s) => {
|
||||
fetch(
|
||||
'https://gw.alipayobjects.com/os/basement_prod/d3564b06-670f-46ea-8edb-842f7010a7c6.json',
|
||||
)
|
||||
.then((res) => res.json())
|
||||
.then((nodes) => {
|
||||
const markerLayer = new MarkerLayer();
|
||||
for (let i = 0; i < 400; i++) {
|
||||
const { coordinates } = nodes.features[i].geometry;
|
||||
const el = document.createElement('label');
|
||||
el.textContent = coordinates[1];
|
||||
el.style.background = getColor(coordinates[1]);
|
||||
el.style.borderColor = getColor(coordinates[1]);
|
||||
|
||||
const marker = new Marker({
|
||||
element: el,
|
||||
}).setLnglat({
|
||||
lng: coordinates[0],
|
||||
lat: coordinates[1],
|
||||
});
|
||||
markerLayer.addMarker(marker);
|
||||
}
|
||||
s.addMarkerLayer(markerLayer);
|
||||
});
|
||||
};
|
||||
|
||||
const getColor = (v) => {
|
||||
const colors = [
|
||||
'#ffffe5',
|
||||
'#f7fcb9',
|
||||
'#d9f0a3',
|
||||
'#addd8e',
|
||||
'#78c679',
|
||||
'#41ab5d',
|
||||
'#238443',
|
||||
'#005a32',
|
||||
];
|
||||
return v > 50
|
||||
? colors[7]
|
||||
: v > 40
|
||||
? colors[6]
|
||||
: v > 30
|
||||
? colors[5]
|
||||
: v > 20
|
||||
? colors[4]
|
||||
: v > 10
|
||||
? colors[3]
|
||||
: v > 5
|
||||
? colors[2]
|
||||
: v > 0
|
||||
? colors[1]
|
||||
: colors[0];
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<h2>400 个节点测试</h2>
|
||||
|
||||
<h4>高德V1</h4>
|
||||
<div id="gaodeV1" style={{ height: '500px', position: 'relative' }} />
|
||||
|
||||
<h4>Mapbox</h4>
|
||||
<div id="mapbox" style={{ height: '500px', position: 'relative' }} />
|
||||
</>
|
||||
);
|
||||
};
|
||||
```
|
|
@ -0,0 +1,78 @@
|
|||
### marker
|
||||
|
||||
```tsx
|
||||
import { Marker, PointLayer, PolygonLayer, Popup, Scene } from '@antv/l7';
|
||||
import { GaodeMap, Mapbox } from '@antv/l7-maps';
|
||||
import React, { useEffect } from 'react';
|
||||
|
||||
export default () => {
|
||||
useEffect(() => {
|
||||
const scene = new Scene({
|
||||
id: 'map-marker',
|
||||
map: new GaodeMap({
|
||||
center: [120.184824, 30.248341],
|
||||
pitch: 0,
|
||||
zoom: 18,
|
||||
}),
|
||||
});
|
||||
|
||||
const popup = new Popup({
|
||||
offsets: [0, 20],
|
||||
}).setHTML('<h1 onclick= alert("12223")>111111111111</h1>');
|
||||
|
||||
const el = document.createElement('h1');
|
||||
el.innerHTML = '<h1>111111111111</h1>';
|
||||
|
||||
// const marker = new Marker({
|
||||
// element: el,
|
||||
// // offsets: [0, -20],
|
||||
// })
|
||||
const marker = new Marker()
|
||||
.setLnglat({
|
||||
lng: 120.184824,
|
||||
lat: 30.248341,
|
||||
})
|
||||
.setPopup(popup);
|
||||
|
||||
scene.addMarker(marker);
|
||||
|
||||
const arr = [
|
||||
{
|
||||
lng: 120.184824,
|
||||
lat: 30.248341,
|
||||
count: 40,
|
||||
},
|
||||
];
|
||||
|
||||
scene.on('loaded', () => {
|
||||
// @ts-ignore
|
||||
// marker.on('click', (e) => {
|
||||
// });
|
||||
// const marker1 = new AMap.Marker({
|
||||
// map: scene.map,
|
||||
// position: [120.184824, 30.248341],
|
||||
// shadow: '#000',
|
||||
// label: {
|
||||
// content: '站点',
|
||||
// direction: 'top',
|
||||
// },
|
||||
// });
|
||||
// marker1.on('click', () => {
|
||||
// console.log(this.scene.getZoom());
|
||||
// console.log('选中的点', 1111);
|
||||
// });
|
||||
// this.scene = scene;
|
||||
});
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div
|
||||
id="map-marker"
|
||||
style={{
|
||||
height: '500px',
|
||||
position: 'relative',
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
|
@ -0,0 +1,61 @@
|
|||
import Marker from '../src/marker';
|
||||
import Popup from '../src/popup';
|
||||
import { TestScene } from '@antv/l7-test-utils'
|
||||
|
||||
const popup = new Popup({ offsets: [0, 20] })
|
||||
.setHTML('<h1 onclick= alert("123")>111</h1>');
|
||||
|
||||
const marker = new Marker()
|
||||
.setLnglat({ lng: 120, lat: 30 })
|
||||
.setPopup(popup);
|
||||
|
||||
TestScene().addMarker(marker)
|
||||
|
||||
describe('Marker', () => {
|
||||
it('render and remove correctly', () => {
|
||||
expect(document.querySelector('.l7-marker')).toBeTruthy();
|
||||
expect(marker.getDefault().draggable).toEqual(false);
|
||||
expect(marker.getDefault().color).toEqual('#5B8FF9');
|
||||
expect(marker.getOffset()).toEqual([0, 0]);
|
||||
expect(marker.isDraggable()).toEqual(false);
|
||||
marker.remove()
|
||||
expect(document.querySelector('.l7-marker')).toBeFalsy();
|
||||
});
|
||||
|
||||
it('open popup and close popup correctly', () => {
|
||||
marker.openPopup();
|
||||
expect(marker.getPopup().isOpen()).toBeTruthy();
|
||||
|
||||
marker.getPopup().close();
|
||||
expect(marker.getPopup().isOpen()).toBeFalsy();
|
||||
|
||||
marker.togglePopup();
|
||||
expect(marker.getPopup().isOpen()).toBeTruthy();
|
||||
|
||||
marker.closePopup();
|
||||
expect(marker.getPopup().isOpen()).toBeFalsy();
|
||||
})
|
||||
|
||||
it('longitude and latitude', () => {
|
||||
const { lng, lat } = marker.getLnglat();
|
||||
expect(lng).toEqual(120);
|
||||
expect(lat).toEqual(30);
|
||||
marker.setLnglat({ lng: 121, lat: 31 })
|
||||
const { lng: newLng, lat: newLat } = marker.getLnglat();
|
||||
expect(newLng).toEqual(121);
|
||||
expect(newLat).toEqual(31);
|
||||
});
|
||||
|
||||
it('element', () => {
|
||||
const el = document.createElement('div');
|
||||
el.id = 'markerDom';
|
||||
el.innerHTML = '<h1>111</h1>';
|
||||
marker.setElement(el);
|
||||
expect(marker.getElement()).toBeTruthy();
|
||||
});
|
||||
|
||||
it('extData', () => {
|
||||
marker.setExtData({ test: 1 })
|
||||
expect(marker.getExtData()).toEqual({ test: 1 })
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue