React实战-如何在ReactJs中调用Google、Baidu地图
来源:互联网 发布:人工智能用go语言开发 编辑:程序博客网 时间:2024/06/03 15:37
React实战-如何在ReactJs中调用Google、Baidu地图
在这个互联网时代,对地图的运用已经成为Web、移动各类应用的必选项。国内外各大地图应用提供商均有开放的Api供大家使用,当然更具使用的功能会提供付费版和免费版,如果仅仅只是小的应用或者练手,完全可以调用其免费版。调用的方式也很简单,跟你调用其他的第三方库类似。但是由于ReactJs的实现方式存在一些特殊性,其调用Google地图(百度类似)也有细微差异(weixin: react-javascript)。
1.传统网页调用Google地图方式
传统网页调用Google地图的方式主要分以下基本:
a.注册Google接口调用的key
由于调用Google接口需要输入Key,Key是Google赋予你的访问权限,各类型的Key不一样,如果你采用ReactJS,你还是申请支持浏览器调用的Key。
b.引入Google的js库
同所有的js库一样,需要引入Google的Js库,不同的是路径要加入key的值。
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA_qPoEzvCB8SYeHzpeI">
c.配置地图参数,创建地图
function initmap() {
var mapOptions = {
center: { lat: 42.872, lng: 3.644},
zoom: 3
};
var map = new google.maps.Map(document.getElementById('example'),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initmap);
2.ReactJs中如何调用Google的API
在ReactJs中调用Google步骤相同,不同的是在最终的调用时存在差异,你依然需要做以下三步:
a.注册Google接口调用的key
b.引入Google的js库
c.在ReactJs组件中调用
在ReactJs中你可以将地图配置信息以任何你认为合适的方式传人googlemap的构造函数,不同的是:
l 我们不需要google.maps.event.addDomListener(window, 'load', initmap);
在ReactJs组件中,一般页面原始初始化放在componentDidMount()函数中,暂且把初始化数据getInitialState中。如:
getInitialState(){
return {
mapconfig:{
center: { lat: 42.872, lng: 3.644},
zoom: 3
}
}
},
componentDidMount(){
new window.google.maps.Map(
this.refs.map,
this.state.mapconfig);
},
l 我们也不采用document.getElementById('example')
上面的代码中你可以看到我们不要getElementById,而是采用refs。相应的页面元素也应定义ref.
<div ref="map" style={{width: 400, height:400, }} />
3.特别注意的地方
从实现代码可以看出,我们并没有发明创造,只是将原有实现方式变的符合React的实现机制。但是尤其要注意的是。我们在页面引入js库,在组件中调用时应采用window.google.maps,如果你少了window,则编译无法通过,找不到google对象了,切记!
4.相关代码
源码位置:git@github.com:chenhuitian/react.git(googlemap-react)
- React实战-如何在ReactJs中调用Google、Baidu地图
- 如何在google地图中获得经纬度
- 如何获取google地图、baidu百度地图的坐标
- 如何获取google地图、baidu百度地图的坐标
- React Native实战之ReactJS
- google baidu 地图
- 调用baidu地图,baidu词典
- React中调用百度地图
- 如何获取google地图、baidu百度地…
- 在网页中加入baidu、google搜索引擎
- 调用Baidu、Google搜索引擎
- ios中调用google地图
- React实战-ReactJS+Redux的思考
- React Native实战之ReactJS组件生命周期
- 如何在制作的网页中加入google地图
- React实战-Reactjs中的如何通过不可变数据对象提高页面性能
- 如何在React组建中使用百度地图api (react js)
- React实战-ReactJs与传统Web页面中Css的使用差异
- Spring Session + Redis实现分布式Session共享
- jstorm 源码分析: supervisor
- 数据结构之线性表(C++) -- 链式描述
- vmware centos7 桥接的网络--连不通
- 10.1
- React实战-如何在ReactJs中调用Google、Baidu地图
- appium2 虚拟机调试
- 插入排序
- comparator接口与Comparable接口
- 有关jsp和servlet
- 安卓开发之使用PathMeasure自定义加载动画控件
- 计算机网络学习小结
- 设计模式——责任链模式
- 漫谈QWidget及其派生类(菜单、菜单栏)