|React+Openlayuers 模板(学习中,持续更新)
基础模板基础
import React { createRef useEffect useReffrom 'react';
import { Map View Feature Overlayfrom 'ol';
import reactDom from 'react-dom';
import TileLayer from 'ol/layer/Tile';
import { OSMfrom 'ol/source';
import { Point LineStringfrom 'ol/geom'; //点
import { Icon Stroke Stylefrom 'ol/style';
import VectorLayer from 'ol/layer/Vector';
import VectorSource from 'ol/source/Vector';
import 'ol/ol.css';
import styles from './index.less';
import poiImg from '@/assets/images/house.png';
import ycdl from '../json/ycdl.json'
const Index: React.FC = () => {
// 地图
const map = useRef<any>();
// 地图容器
const mapDom = createRef<HTMLDivElement>();
useEffect(() => {
// 初始化地图
initMap()
// 加载标注
createFeature(ycdl.features[0
.geometry.coordinates poiImg 'iconFeature');
//加载线
createLine(ycdl.features[0
.geometry.coordinates poiImg 'lineFeature');
//加载信息框
createInfo()
);
/**
* 初始化地图
*/
const initMap = () => {
map.current = new Map({
target: 'map'
layers: [
new TileLayer({
source: new OSM()
)
view: new View({
center: [111.286962 30.69217
projection: 'EPSG:4326'
zoom: 14
)
);
//创建标注
const createFeature = (featureData: Array<any> featureImg: string layerId: string) => {
// 创建标注
if (featureData.length > 0) {
let iconFeatures: any;
iconFeatures = new Array();
featureData.forEach((v index) => {
iconFeatures.push(new Feature({
geometry: new Point([...v
)
))
iconFeatures[index
.setId(`icon ${index`)
)
// 将标注属性添加到矢量数据源中
let iconSource = new VectorSource({
features: iconFeatures
)
//将标注矢量数据源添加到矢量层
let iconLayer = new VectorLayer({
source: iconSource
zIndex: 3
style: () => {
return new Style({
- 欧姆|常见硬件面试题(含答案)盘点,硬件工程师学习笔记
- 英特尔|近年来,生成式深度学习模型在分子设计中的应用已经出现
- |学习配机,从解读品牌机配置方案开始!
- 小米科技|佳能裁员补偿是恶意吗?宣扬996的老板是否能向这些良心企业学习
- 深度学习|深度学习,对如何更好地表示计算机的化学结构的问题,有着浓厚的兴趣
- 联想|集学习与娱乐一体的性能平板!小新Pad pro 2021体验
- bingo|搜狗搜索 App 升级为 Bingo,号称“学习与生活神器”
- t20|诺基亚T20教育版学习平板迎来首次OTA升级:新增浏览器下载功能
- 大数据|深度学习也能不玩大数据?小企业训练大模型有新解
- 脑机接口|与机器学习技术相比,深度学习如今已广泛用于脑机接口应用程序