在天马模块中的应用demo 在天马模块中的应用demo
在天马模块中的应用demo
Rax-map 基于 rax 与高德地图,快速开发无线地图类业务需求
☆ 目前的 Rax-map 是基于移动端 webView 的h5方式。在发布 rax 项目后, 项目默认 wh_weex=false;
Rax-map
rax
wh_weex=false
建议在chrome的移动端模拟模式下查看
https://github.com/ryan730/rax-map-example
Rax 是什么?
Rax
React
Rax-map 的由来?
由于 Rax 截止 Rax-map 开发之前,还没有规范的地图组件,大多是调用用高德地图js 版本,高德地图js 版本基于选择器的开发方式,并不能无缝接入 React MVVM+jsx风格的开发方式。
高德地图js 版本
Rax-map 的出现基于两个目的:
下面是代码,如何创建一个基础 map 和一个可管理得 marker 集合,是不是很 Rax。
map
marker
<Map plugins={['ToolBar', 'Scale']} style={style} events={this.mapEvents} center={this.mapDefaultProps.center} zooms={[8, 19]}// 地图显示的缩放级别范围,在移动设备上,默认为[3,19],取值范围[3-19] <Markers markers={this.state.markers} useCluster={this.state.useCluster} render={this.projMarkers.render} events={this.projMarkers.events} keepLive={true} /> </Map>
如果要创建一个普通的map应用,开发者不用查询高德的api,也不用关心包括map的管理,marker的管理,事件的管理等等繁琐的事情。 比如:如果要增,删,改, 查marker集合,只需要如下操作,只用给this.state.markers赋值一个新的数组.
this.setState({markers: [...newMarkers]}, cb);
npm install --save rax-map
以下示例展示内容说明:
amapkey
import {createElement,PureComponent, render} from 'rax'; import {Map} from 'rax-map'; import View from 'rax-view'; import Touchable from 'rax-touchable'; // 导入touch 容器 const amapkey = '...';// 这个是高德地图给开发者分配的开发者 Key class App extends PureComponent{ // 初始化参数 constructor(){ super(); this.state = { mapWidth:'100%', mapHeight:'100%', center:{longitude: 115,latitude: 30}, zoom:8 }; } // 改变map的容器尺寸 changeMapSize(){ this.setState({ mapWidth:150-(Math.random()*50), mapHeight:250-(Math.random()*50), }) } // 改变map的中心点 changeCenter(){ this.setState({ center: { longitude: 115 + Math.random() * 10, latitude: 30 + Math.random() * 10, } }); } // 改变map的级别 changeZoom(){ this.setState({ zoom: (new Array(20).fill(true).map((i,index)=>index))[parseInt(Math.random()*20)] }); } render(){ const { mapWidth, mapHeight, center,zoom} = this.state; return ( <View style={{width: '100%', height: '100%'}}> <View style={{width: mapWidth, height: mapHeight}}> <Map amapkey={amapkey} center = {center} zoom = {zoom} resizeEnable = {true} /> </View> <View style={rowStyle}> <Touchable style={touchStyle} onPress={this.changeMapSize.bind(this)}> 点我 : 改变map的容器尺寸 </Touchable> <Touchable style={touchStyle} onPress={this.changeCenter.bind(this)}> 点我 : 改变map的中心点 </Touchable> <Touchable style={touchStyle} onPress={this.changeZoom.bind(this)}> 点我 : 改变map的级别 </Touchable> </View> </View> ) } } // touch容器样式 const touchStyle = { borderStyle: 'solid', borderColor: '#dddddd', borderWidth: 1, padding:2, margin:5, width:50, height:30, backgroundColor:'#FFF', justifyContent:'center', alignItems:'center', fontSize:5, textAlign: 'center', boxShadow: '5px 5px 5px #888888' } const rowStyle = { position:'absolute', flexDirection:'column', justifyContent:'space-between', right:-70 } render(<App />)
Map
更多功能组件,请参考
首先感谢你使用 Rax-map,Rax-map 是一个基于 Rax 封装的高德地图组件库;
Rax-map 的成长离不开大家的支持,希望大家通过 Issues 提出宝贵意见;
power by 阿里拍卖前端团队
createElemet
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
Rax-map
线上API地址(包含demo演示)
项目实践(阿里拍卖-地图找房)
项目在 淘系 “天马模块” 中的应用实例
https://github.com/ryan730/rax-map-example
背景
Rax是什么?Rax是一个全新的思路。它是一个通用的跨容器的渲染引擎, 如果你使用过React, 那么你就已经知道了该如何使用Rax, 因为它们的 API 是完全兼容的。Rax的诞生,主要还是为阿里巴巴广泛的业务来服务的。现在,我们让它走向开源,服务更多的开发者。Rax-map的由来?由于
Rax截止Rax-map开发之前,还没有规范的地图组件,大多是调用用高德地图js 版本,高德地图js 版本基于选择器的开发方式,并不能无缝接入ReactMVVM+jsx风格的开发方式。Rax-map的出现基于两个目的:Rax应用中接入高德地图,用;如何使用
Rax-map使用
下面是代码,如何创建一个基础
map和一个可管理得marker集合,是不是很Rax。如果要创建一个普通的map应用,开发者不用查询高德的api,也不用关心包括map的管理,marker的管理,事件的管理等等繁琐的事情。 比如:如果要增,删,改, 查marker集合,只需要如下操作,只用给this.state.markers赋值一个新的数组.
安装
基本用法
以下示例展示内容说明:
amapkey属性,你可以在高德开放平台申请你自己的Key;组件
Map的子组件使用功能
贡献指南
团队
power by 阿里拍卖前端团队
更新日志
createElemet的bug,