`
fengzheng0603
  • 浏览: 72992 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

react从头搭建工程和openlayer5结合创建可调式地图

 
阅读更多

 

1. npm 命令 

mkdir react-webpack-openlayer

cd react-webpack-openlayer

npm init

npm i react react-dom -D

npm i webpack webpack-cli webpack-dev-server  -D

npm i @babel/core babel-loader @babel/preset-env @babel/preset-react --save-dev

npm i css-loader style-loader

npm i ol

 2.package.json

 

 

{
  "name": "react-webpack-openlayer",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "webpack-dev-server"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {},
  "devDependencies": {
    "@babel/core": "^7.4.4",
    "@babel/preset-env": "^7.4.4",
    "@babel/preset-react": "^7.0.0",
    "babel-loader": "^8.0.6",
    "css-loader": "^2.1.1",
    "ol": "^5.3.2",
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "style-loader": "^0.23.1",
    "webpack": "^4.31.0",
    "webpack-cli": "^3.3.2",
    "webpack-dev-server": "^3.3.1"
  }
}

 3.webpack.config.js

const path = require('path')

module.exports = {
    devtool: "source-map",
    entry: {
        entry: './src/Main.js', 
    },
    output: {
        path: __dirname, 
        filename: 'index1.js'
    },
    resolve: {
        alias: {
            src: path.resolve(__dirname, 'src/')
        }
    },
    module: {
        rules: [
            {
                test: /\.js$/, 
                exclude: /node_modules/,
                loader: 'babel-loader'
            }, {
                test: /\.css$/,
                exclude: /node_modules/,
                use: [
                  'style-loader',
                  {
                    loader: 'css-loader',
                    options: {
                      modules: true,
                    },
                  },
                ],
            }
        ]
    },
    devServer: {
        inline: true,
        open: 'Chrome'
    }
}

 4..babelrc

 

{
    "presets": ["@babel/preset-env", "@babel/preset-react"]
}

 5.index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Roles and Privileges</title>
    
</head>
<body style="background-color: #f9fafc; margin:0px;">
<div id="app"></div>
<script type="text/javascript" src="index1.js"></script>
</body>
</html>

 6.Main.js

 

 

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(
    <App/>,
    document.getElementById('app')
  )

 7.App.js

 

 

import React from 'react';
import Map from "./Map";


class App extends React.Component {

    render() {
        
        return  (<div>
           <Map />
        </div>
        
        )
    }
}

export default App 

 8.Map.js

 

 

import React, { Component } from "react";
import Map from 'ol/Map.js';
import View from 'ol/View.js';
import TileLayer from 'ol/layer/Tile.js';
import XYZ from 'ol/source/XYZ.js';
import OlSourceOSM from "ol/source/OSM";

class PublicMap extends Component {
    
    constructor(props) {
        super(props);
        
        let modelDistribution = require('./config/modelDistribution.json');
        this.mapConfig=modelDistribution.map

        this.initMap();

    }

    componentDidMount() {
        this.olmap.setTarget("map");  
    }

    initMap(){

        this.olmap = new Map({
            target: null,
            layers: [
            new TileLayer({
                source: new XYZ({
                        url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}"
                    })
                })
            ],
            view: new View({
                projection: 'EPSG:4326',
                center:[-83.44, 42.60],
                zoom: 12
            })
        });
  }

    render() {
        return (
        <div id="map" style={{ width: "100%", height: "800px" }}>
        </div>
        );
    }
}

export default PublicMap;

 9.  效果图:

 

 

 

 

  • 大小: 2.7 MB
  • 大小: 445.3 KB
分享到:
评论

相关推荐

    pro4js和openlayer版本配置

    标题 "pro4js和openlayer版本配置" 涉及的是两个主要的JavaScript库在项目中的集成和配置:Pro4JS和OpenLayers。Pro4JS通常用于地理信息系统(GIS)开发,提供了一些实用的地理处理功能,而OpenLayers则是一个流行的...

    react 框架搭建

    React框架搭建是一个重要的前端开发步骤,它涉及到一系列的技术和工具,包括React库本身、React-Redux用于状态管理以及可能的Express.js用于后端服务。在这个过程中,开发者需要掌握如何配置项目环境,安装必要的...

    react项目搭建

    此项目包含了 路由配置(嵌套路由) fetch请求接口 redux状态管理 webpack代理设置 蚂蚁金服ant使用 调用h5+手机摄像头功能,绝对物超所值,页面简单 但是架子稳定 涉及的知识全面

    react-一步一步搭建一个react项目环境

    在本文中,我们将深入探讨如何一步一步地搭建一个React项目环境,包括使用React和Webpack的基础配置。React是一个流行的JavaScript库,用于构建用户界面,而Webpack是一个模块打包器,它能够管理和优化项目的依赖...

    基于 React 封装的百度地图组件,帮助你轻松的接入地图到 React 项目中,支持 React Hook

    在现代Web应用开发中,React框架以其高效、可复用组件和声明式编程风格而备受青睐。当涉及到地理信息系统(GIS)或者地图功能时,如何将地图服务集成到React项目中就成为了一个重要的问题。本篇文章将深入探讨一个...

    react框架搭建.xmind

    react框架搭建.xmind

    react使用高德地图react-amap:Markers、Circle、ContextMenu、自定义ContextMenu

    在React开发中,集成地图功能是一项常见的需求,而高德地图API提供了丰富的地图服务,可以与React框架很好地结合。在本项目中,我们利用`react-amap`这个库,它是高德地图JavaScript API的React封装,使我们能够在...

    使用IDEA创建的一个简单的react项目

    在本文中,我们将深入探讨如何使用IntelliJ IDEA(IDEA)创建一个简单的React项目,并在其中添加一个点击计数组件。React是一个流行的JavaScript库,用于构建用户界面,特别是单页应用程序。它采用组件化的方式来...

    react-reactleafletLeaflet地图的React组件

    `react-leaflet`允许开发者利用React的声明式编程风格来构建交互式的地图应用。 首先,我们需要理解React的基本概念。React是由Facebook开发的一个用于构建用户界面的JavaScript库,它提倡组件化开发,使代码更加可...

    react项目搭建步骤.pdf

    React 项目搭建是指使用 React 库创建一个新的项目,并进行基本的配置和设置。下面是 React 项目搭建的步骤: 步骤一:创建项目 创建一个新的 React 项目,使用 `create-react-app` 工具创建项目结构图。这个工具...

    最简单的脚手架工具搭建的react实现路由和状态机demo

    本项目"最简单的脚手架工具搭建的react实现路由和状态机demo"正是基于`create-react-app`创建的,它展示了如何在React应用中集成路由管理和状态管理。 首先,`create-react-app`是Facebook官方推出的用于创建React...

    react-利用React创建word文档

    本篇文章将深入探讨如何利用React技术来实现这一功能,同时结合Haunted库提供的Web组件和React Hooks API,为开发者提供一个高效、简洁的解决方案。 首先,让我们了解React的基本概念。React是一个用于构建用户界面...

    react-leaflet-heatmap-layer, 在反应传单中,heatmaps的自定义层.zip

    react-leaflet-heatmap-layer, 在反应传单中,heatmaps的自定义层 react-leaflet-heatmap-layerreact-leaflet-heatmap-layer 提供了一个简单的&lt;HeatmapLayer/&gt; 组件,用于在 react-leaflet 映射中创建热图图层。

    react-electronreactreactroutermobxwebpack搭建的脚手架工程

    总结来说,这个"react-electronreactreactroutermobxwebpack搭建的脚手架工程"是一个完整的桌面应用开发解决方案,它融合了前端和后端开发的最佳实践,为开发者提供了一个起点,以便快速启动具有响应式UI、动态路由...

    react+esriloader 天地图加载源码

    在本文中,我们将深入探讨如何使用React和esri-loader库来加载天地图的源码。首先,让我们了解React,这是一个流行的JavaScript库,用于构建用户界面,特别是单页应用程序(SPA)。另一方面,esri-loader是专门为...

    基于 React 封装的百度地图组件,支持 React Hook,帮助你轻松的接入地图到 React 项目中。.zip

    为了将百度地图无缝集成到React应用中,开发者通常会创建自定义的React组件,以便更好地利用React的生命周期管理和状态管理特性。本文将详细介绍一个基于React封装的百度地图组件,该组件还支持React Hook,从而简化...

    从零开始搭建一个react项目开发

    从零开始搭建一个React项目开发 本文主要介绍了从零开始搭建一个React项目开发的整个过程,从生成package.json文件到安装依赖项、配置Webpack、启动开发服务器等。下面是相关知识点的详细解释: 一、生成package....

    react+antd搭建后台管理框架

    react+antd搭建前端管理框架(***支持响应式***),主要模块分为:菜单、选项卡、面包屑;通过路由监听,实现三个模块之间的联动(同时监听浏览器);状态采用react-redux进行集中管理。目前只包含前端代码,未与...

    react-googlemapreact通用google地图react组件能够在谷歌地图上渲染react组件

    首先,`react-googlemap-react`库通过JavaScript API与Google Maps服务进行通信,为React应用提供了一种声明式的、基于组件的方式来创建地图。这意味着开发者可以像处理其他React组件一样,通过props来设置地图的...

    react-使用React创建Framer原型

    Framer是一个强大的设计工具,它允许设计师和开发者创建交互式原型,而React则是一个流行的JavaScript库,用于构建用户界面。通过结合两者,我们可以构建出更加动态和真实的Web应用原型。 ### React基础 React是一...

Global site tag (gtag.js) - Google Analytics