内容简介:因为之前工作的关系,会频繁的使用各种地图,例如百度地图,高德地图,谷歌地图等。所以想整理一下,写一个在react中根据不同的需求使用地图api的各种demo集合,所以先以百度地图为例。我们会看见上图,然后我们在此基础上进行改造。
因为之前工作的关系,会频繁的使用各种地图,例如百度地图,高德地图,谷歌地图等。所以想整理一下,写一个在react中根据不同的需求使用地图api的各种demo集合,所以先以百度地图为例。
本文将根据官网显示的demo列表,一个一个实现在react中的使用方法。文章内容较长,将会持续更新,同时也会在官网提供的列子上根据实际使用加入不同的使用组合。
技术
- React -----> create-react-app 一个facebook官方开发的快速搭建react的脚手架。
- 百度地图JavaScript API ------->在web端使用的百度地图api
- antd design----->开箱即用的高质量 React 组件。
(一)前端搭建
1.用facebook官方开发的create-react-app 脚手架搭建一个react前端框架。
(1)全局安装 create-react-app
npm install -g create-react-app 复制代码
(2)创建项目
create-react-app react-map npm run eject //可省略,只为了看配置 config npm start 复制代码
自此项目目录如下图
(3) 运行
npm start
我们会看见上图,然后我们在此基础上进行改造。
(4)安装依赖
npm install antd react-router --save
为了使用antd 的时候能够按需加载,先配置 babel-plugin-import 这是一个用于按需加载组件代码和样式的 babel 插件
npm install babel-plugin-import --save-dev 复制代码
然后在package.json中加入配置
·····省略其他
"babel": {
"presets": [
"react-app"
],
"plugins": [
[
"import",
{
"libraryName": "antd",
"style": true
}
]
]
},
·····省略其他
复制代码
使用装饰器
npm install --saveDev babel-plugin-transform-decorators-legacy 复制代码
然后在package.json中加入配置
·····省略其他
"babel": {
"presets": [
"react-app"
],
"plugins": [
"transform-decorators-legacy",
[
"import",
{
"libraryName": "antd",
"style": true
}
]
]
},
·····省略其他
复制代码
基础页面布局
基础工作做好后,下面开始正式的地图使用
(1)获取百度地图api,获取方式网上有很多教程,就不介绍了,如果不想获取的,可以先用我的key 2NZa1O1V3BHmsDlX9fdomGaO3S5b1AEo (2) 在public/index.html引入
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=2NZa1O1V3BHmsDlX9fdomGaO3S5b1AEo"></script> 复制代码
(3)react使用BMap
重点 重点!!!!如果直接就使用
let map =new BMap.Map("allmap");
复制代码
会报错
有两种解决方式 可以参考 www.cnblogs.com/softidea/p/… 这个就看你的选择了.
本文选择的是第二种 在config/webpack.config.dev.js中
module.exports = {
externals:{
'BMap':'BMap',
},
}
复制代码
然后在你要使用的jsx中加入
import BMap from 'BMap'; 复制代码
成功!!!!
地图使用demo展示
本文将根据官网显示的demo列表,一个一个实现在react中的使用方法。文章内容较长,将会持续更新,同时也会在官网提供的列子上根据实际使用加入不同的使用组合。
第一部分 地图实力
在官网中地图实力是以下内容
此时我的项目结构如下:
地图展示
src/components/bmap/mapSample/BasicMapView.jsx
(1)导入BMap
import BMap from 'BMap'; 复制代码
(2)地图展示 现在render里面制定地图id,height,width等信息
<div style={{width:"100%",height:"100%"}} id={"allmap"}></div>
复制代码
然后在componentDidMount中对地图进行绑定id,复制粘贴官网例子
componentDidMount(){
let map =new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别
//添加地图类型控件
map.addControl(new BMap.MapTypeControl({
mapTypes:[
BMAP_HYBRID_MAP,//混合地图
BMAP_NORMAL_MAP//地图
]}));
map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
}
复制代码
此时发现emmmmm 报错了
但是打印console.log(window)后发现window里面居然有,所以可以专门用一个js保存这些数据。 在common/BMAP_DATA.js中指定这些参数
export const BMAP_NORMAL_MAP =window.BMAP_NORMAL_MAP; export const BMAP_HYBRID_MAP = window.BMAP_HYBRID_MAP; 复制代码
然后在src/components/bmap/mapSample/BasicMapView.jsx中导入
import {BMAP_HYBRID_MAP, BMAP_NORMAL_MAP} from "../../../common/BMAP_DATA";
复制代码
搞定!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 百度地图 osm地图 leaflet echarts webapck的组合使用时的踩坑记录
- 如何使用Leangoo脑图实现影响地图
- 使用MotionLayout实现高德地图bottomSheets效果
- 使用XSL样式表调试XML站点地图
- 使用Python pygal模块绘制世界地图示例
- 如何使用高程DEM建立三维地图模型(Arcgis ArcScene)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Applications (Hacking Exposed)
Joel Scambray、Mike Shema / McGraw-Hill Osborne Media / 2002-06-19 / USD 49.99
Get in-depth coverage of Web application platforms and their vulnerabilities, presented the same popular format as the international bestseller, Hacking Exposed. Covering hacking scenarios across diff......一起来看看 《Web Applications (Hacking Exposed)》 这本书的介绍吧!
HTML 编码/解码
HTML 编码/解码
XML、JSON 在线转换
在线XML、JSON转换工具