react+esriloader 天地图加载

最近看react,也看到有某博主的vue+esriloader相关内容,这里稍微做了下修改,记个笔记(*^_^*)

不知道怎么写,直接贴代码吧

环境搭建

这里默认安装了node、create-react-appyarn。以下命令都在vscode的终端

首先创建react项目

create-react-app react-esriloader

vscode打开前面创建的项目文件夹,初始化环境键入yarn或yarn install

yarn

安装 esri-loader

yarn add esri-loader

本文主要有两个组件map容器、经纬度显示

ArcMap.js:(esri-loader返回Promise,这里then写的有点晕乎,就抽出了methods.js)

import React, { Component } from 'react'
import methods from './js/methods'

export default class ArcMap extends Component {
    constructor() {
        super();
        this._setMap = this._setMap.bind(this);
    }
    componentDidMount() {
        methods.loadArcgis().then(//初始化完成之后将map传给父组件,供经纬度显示使用
            this._setMap
        ).catch(
            err => console.log(err)
        );
    }
    _setMap(map){//调用父组件传入的方法
        if(this.props.setMap){
            this.props.setMap(map);
        }
    }
    render(){
        return(
            <div className="mapContainer">
                <div id="map">
                </div>
            </div>
        )
    }
}

methods.js:主要内容为初始化esriapi环境,天地图加载服务这里抽出来了

import esriLoader from 'esri-loader';
import TDT from './TDT'

class Methods {
	loadArcgis() { // 该方法用于加载 arcgis 依赖的js,css 等
		// 加载css
		esriLoader.loadCss('http://jsapi.thinkgis.cn/esri/css/esri.css');

		return esriLoader.loadScript({ // 加载js
			url: 'http://jsapi.thinkgis.cn/dojo/dojo.js',
			dojoConfig: {
				async: true
			},
		}).then(//dojo加载完成之后,载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值