Commit af84a2c9 authored by Qiu Xiang's avatar Qiu Xiang

添加倾斜角度和中心坐标的设置接口

parent be9d91e9
...@@ -2,8 +2,10 @@ package cn.qiuxiang.react.amap3d; ...@@ -2,8 +2,10 @@ package cn.qiuxiang.react.amap3d;
import com.amap.api.maps.AMap; import com.amap.api.maps.AMap;
import com.amap.api.maps.CameraUpdateFactory; import com.amap.api.maps.CameraUpdateFactory;
import com.amap.api.maps.model.MyLocationStyle; import com.amap.api.maps.model.LatLng;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.common.MapBuilder; import com.facebook.react.common.MapBuilder;
import com.facebook.react.module.annotations.ReactModule;
import com.facebook.react.uimanager.SimpleViewManager; import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.annotations.ReactProp; import com.facebook.react.uimanager.annotations.ReactProp;
...@@ -90,7 +92,7 @@ class AMapViewManager extends SimpleViewManager<AMapView> { ...@@ -90,7 +92,7 @@ class AMapViewManager extends SimpleViewManager<AMapView> {
@ReactProp(name = "zoomLevel") @ReactProp(name = "zoomLevel")
public void setZoomLevel(AMapView view, float zoomLevel) { public void setZoomLevel(AMapView view, float zoomLevel) {
view.map.animateCamera(CameraUpdateFactory.zoomTo(zoomLevel)); view.map.moveCamera(CameraUpdateFactory.zoomTo(zoomLevel));
} }
@ReactProp(name = "mapType") @ReactProp(name = "mapType")
...@@ -117,4 +119,18 @@ class AMapViewManager extends SimpleViewManager<AMapView> { ...@@ -117,4 +119,18 @@ class AMapViewManager extends SimpleViewManager<AMapView> {
public void setTiltGesturesEnabled(AMapView view, boolean enabled) { public void setTiltGesturesEnabled(AMapView view, boolean enabled) {
view.ui.setTiltGesturesEnabled(enabled); view.ui.setTiltGesturesEnabled(enabled);
} }
@ReactProp(name = "coordinate")
public void moveToCoordinate(AMapView view, ReadableMap coordinate) {
view.map.moveCamera(CameraUpdateFactory.changeLatLng(new LatLng(
coordinate.getDouble("latitude"),
coordinate.getDouble("longitude"))));
}
@ReactProp(name = "tilt")
public void changeTilt(AMapView view, float tilt) {
view.map.moveCamera(CameraUpdateFactory.changeTilt(tilt));
}
// todo: 自定义 locationStyle
} }
...@@ -9,8 +9,12 @@ export default class Indoor extends Component { ...@@ -9,8 +9,12 @@ export default class Indoor extends Component {
render() { render() {
return <MapView return <MapView
coordinate={{
latitude: 39.91095,
longitude: 116.37296,
}}
zoomLevel={18}
showsIndoorMap={true} showsIndoorMap={true}
showsIndoorSwitch={true}
style={StyleSheet.absoluteFill}/> style={StyleSheet.absoluteFill}/>
} }
} }
...@@ -37,6 +37,7 @@ export default class Layers extends Component { ...@@ -37,6 +37,7 @@ export default class Layers extends Component {
</View> </View>
<MapView <MapView
zoomLevel={17} zoomLevel={17}
tilt={60}
showsLabels={this.state.showsLabels} showsLabels={this.state.showsLabels}
showsTraffic={this.state.showsTraffic} showsTraffic={this.state.showsTraffic}
showsBuildings={this.state.showsBuildings} showsBuildings={this.state.showsBuildings}
......
import React, {PropTypes, Component} from 'react' import React, {PropTypes, Component} from 'react'
import {requireNativeComponent, View} from 'react-native' import {requireNativeComponent, View} from 'react-native'
const CoordinateProType = PropTypes.shape({
latitude: PropTypes.number.isRequired,
longitude: PropTypes.number.isRequired,
})
class MapView extends Component { class MapView extends Component {
static propTypes = { static propTypes = {
...View.propTypes, ...View.propTypes,
...@@ -76,10 +81,20 @@ class MapView extends Component { ...@@ -76,10 +81,20 @@ class MapView extends Component {
minZoomLevel: PropTypes.number, minZoomLevel: PropTypes.number,
/** /**
* 设置当前缩放级别 * 设置当前缩放级别,取值范围 [3, 20]
*/ */
zoomLevel: PropTypes.number, zoomLevel: PropTypes.number,
/**
* 设置中心坐标
*/
coordinate: CoordinateProType,
/**
* 设置倾斜角度,取值范围 [0, 60]
*/
tilt: PropTypes.number,
/** /**
* 是否启用缩放手势,用于放大缩小 * 是否启用缩放手势,用于放大缩小
*/ */
...@@ -110,3 +125,4 @@ AMapView = requireNativeComponent('AMapView', MapView) ...@@ -110,3 +125,4 @@ AMapView = requireNativeComponent('AMapView', MapView)
export default MapView export default MapView
export {MapView} export {MapView}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment