2021-04-22 15:08:41 +08:00
|
|
|
// @ts-ignore
|
|
|
|
import { ILngLat, PointLayer, PolygonLayer, Scene } from '@antv/l7';
|
2021-05-27 19:53:22 +08:00
|
|
|
import { GaodeMap } from '@antv/l7-maps';
|
2021-04-22 15:08:41 +08:00
|
|
|
import * as React from 'react';
|
|
|
|
|
|
|
|
export default class Amap2demo_image extends React.Component {
|
|
|
|
// @ts-ignore
|
|
|
|
private scene: Scene;
|
|
|
|
|
|
|
|
public componentWillUnmount() {
|
|
|
|
this.scene.destroy();
|
|
|
|
}
|
|
|
|
|
|
|
|
public async componentDidMount() {
|
|
|
|
const scene = new Scene({
|
|
|
|
id: 'map',
|
2021-05-27 19:53:22 +08:00
|
|
|
map: new GaodeMap({
|
2021-04-22 15:08:41 +08:00
|
|
|
pitch: 0,
|
|
|
|
style: 'light',
|
|
|
|
center: [121.434765, 31.256735],
|
2021-06-28 21:02:52 +08:00
|
|
|
zoom: 12,
|
2021-05-27 19:53:22 +08:00
|
|
|
viewMode: '3D',
|
2021-04-22 15:08:41 +08:00
|
|
|
}),
|
|
|
|
});
|
|
|
|
this.scene = scene;
|
2021-06-28 21:02:52 +08:00
|
|
|
let originData = [{
|
|
|
|
"id": "5011000000404",
|
|
|
|
"name": "铁路新村(华池路)",
|
|
|
|
"longitude": 121.4316962,
|
|
|
|
"latitude": 31.26082325,
|
|
|
|
"unit_price": 71469.4,
|
|
|
|
"count": 2,
|
|
|
|
opacity: 0.5,
|
|
|
|
offsets: [0, 0]
|
|
|
|
}, {
|
|
|
|
"id": "5011000002716",
|
|
|
|
"name": "金元坊",
|
|
|
|
"longitude": 121.3810096,
|
|
|
|
"latitude": 31.25302026,
|
|
|
|
"unit_price": 47480.5,
|
|
|
|
"count": 2,
|
|
|
|
opacity: 0.5,
|
|
|
|
offsets: [100, 0]
|
|
|
|
}, {
|
|
|
|
"id": "5011000003403",
|
|
|
|
"name": "兰溪路231弄",
|
|
|
|
"longitude": 121.4086229,
|
|
|
|
"latitude": 31.25291206,
|
|
|
|
"unit_price": 55218.4,
|
|
|
|
"count": 2,
|
|
|
|
opacity: 0.8
|
|
|
|
}, {
|
|
|
|
"id": "5011000003652",
|
|
|
|
"name": "兰溪公寓",
|
|
|
|
"longitude": 121.409227,
|
|
|
|
"latitude": 31.251014,
|
|
|
|
"unit_price": 55577.8,
|
|
|
|
"count": 2,
|
|
|
|
opacity: 0.8
|
|
|
|
}, {
|
|
|
|
"id": "5011000004139",
|
|
|
|
"name": "梅岭新村",
|
|
|
|
"longitude": 121.400946,
|
|
|
|
"latitude": 31.24946565,
|
|
|
|
"unit_price": 63028.1,
|
|
|
|
"count": 2,
|
|
|
|
opacity: 1.0
|
|
|
|
}]
|
|
|
|
scene.addImage(
|
|
|
|
'00',
|
|
|
|
'https://gw.alipayobjects.com/zos/basement_prod/604b5e7f-309e-40db-b95b-4fac746c5153.svg',
|
|
|
|
// "https://gw-office.alipayobjects.com/bmw-prod/ae2a8580-da3d-43ff-add4-ae9c1bfc75bb.svg"
|
|
|
|
);
|
|
|
|
scene.addImage(
|
|
|
|
'01',
|
|
|
|
'https://gw.alipayobjects.com/zos/basement_prod/30580bc9-506f-4438-8c1a-744e082054ec.svg',
|
|
|
|
);
|
|
|
|
scene.addImage(
|
|
|
|
'02',
|
|
|
|
'https://gw.alipayobjects.com/zos/basement_prod/7aa1f460-9f9f-499f-afdf-13424aa26bbf.svg',
|
|
|
|
);
|
2021-04-22 15:08:41 +08:00
|
|
|
|
|
|
|
scene.on('loaded', () => {
|
2021-06-28 21:02:52 +08:00
|
|
|
// fetch(
|
|
|
|
// 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json',
|
|
|
|
// )
|
|
|
|
// .then((res) => res.json())
|
|
|
|
// .then((data) => {
|
|
|
|
// const imageLayer = new PointLayer()
|
|
|
|
// .source(data, {
|
|
|
|
// parser: {
|
|
|
|
// type: 'json',
|
|
|
|
// x: 'longitude',
|
|
|
|
// y: 'latitude',
|
|
|
|
// },
|
|
|
|
// })
|
|
|
|
// .shape('name', ['00', '01', '02'])
|
|
|
|
// // .color("rgba(255, 0, 0, 0.1)")
|
|
|
|
// .size(20);
|
|
|
|
// scene.addLayer(imageLayer);
|
|
|
|
// });
|
|
|
|
const imageLayer = new PointLayer()
|
|
|
|
.source(originData, {
|
2021-04-22 15:08:41 +08:00
|
|
|
parser: {
|
|
|
|
type: 'json',
|
|
|
|
x: 'longitude',
|
|
|
|
y: 'latitude',
|
|
|
|
},
|
|
|
|
})
|
|
|
|
.shape('name', ['00', '01', '02'])
|
2021-06-28 21:02:52 +08:00
|
|
|
.size(20)
|
|
|
|
.style({
|
|
|
|
opacity: 'opacity',
|
|
|
|
offsets: 'offsets'
|
|
|
|
})
|
2021-04-22 15:08:41 +08:00
|
|
|
scene.addLayer(imageLayer);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
public render() {
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<div
|
|
|
|
id="map"
|
|
|
|
style={{
|
|
|
|
position: 'absolute',
|
|
|
|
top: 0,
|
|
|
|
left: 0,
|
|
|
|
right: 0,
|
|
|
|
bottom: 0,
|
|
|
|
}}
|
|
|
|
/>
|
|
|
|
</>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|