UNPKG

react-native-maps

Version:
152 lines (144 loc) 3.33 kB
var React = require('react-native'); var { StyleSheet, PropTypes, View, Text, Dimensions, TouchableOpacity, Image, } = React; var MapView = require('../components/MapView'); var { width, height } = Dimensions.get('window'); const ASPECT_RATIO = width / height; const LATITUDE = 37.78825; const LONGITUDE = -122.4324; const LATITUDE_DELTA = 0.0922; const LONGITUDE_DELTA = LATITUDE_DELTA * ASPECT_RATIO; const SPACE = 0.01; var Overlays = React.createClass({ getInitialState() { return { region: { latitude: LATITUDE, longitude: LONGITUDE, latitudeDelta: LATITUDE_DELTA, longitudeDelta: LONGITUDE_DELTA, }, circle: { center: { latitude: LATITUDE + SPACE, longitude: LONGITUDE + SPACE, }, radius: 700, }, polygon: [ { latitude: LATITUDE + SPACE, longitude: LONGITUDE + SPACE, }, { latitude: LATITUDE - SPACE, longitude: LONGITUDE - SPACE, }, { latitude: LATITUDE - SPACE, longitude: LONGITUDE + SPACE, }, ], polyline: [ { latitude: LATITUDE + SPACE, longitude: LONGITUDE - SPACE, }, { latitude: LATITUDE - 2 * SPACE, longitude: LONGITUDE + 2 * SPACE, }, { latitude: LATITUDE - SPACE, longitude: LONGITUDE - SPACE, }, { latitude: LATITUDE - 2 * SPACE, longitude: LONGITUDE - SPACE, }, ], }; }, render() { const { region, circle, polygon, polyline } = this.state; return ( <View style={styles.container}> <MapView style={styles.map} initialRegion={region} > <MapView.Circle center={circle.center} radius={circle.radius} fillColor="rgba(200, 0, 0, 0.5" strokeColor="rgba(0,0,0,0.5" /> <MapView.Polygon coordinates={polygon} fillColor="rgba(0, 200, 0, 0.5" strokeColor="rgba(0,0,0,0.5" strokeWidth={2} /> <MapView.Polyline coordinates={polyline} strokeColor="rgba(0,0,200,0.5" strokeWidth={3} /> </MapView> <View style={styles.buttonContainer}> <View style={styles.bubble}> <Text>Render circles, polygons, and polylines</Text> </View> </View> </View> ); }, }); var styles = StyleSheet.create({ container: { position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, justifyContent: 'flex-end', alignItems: 'center', }, map: { position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, }, bubble: { flex: 1, backgroundColor: 'rgba(255,255,255,0.7)', paddingHorizontal: 18, paddingVertical: 12, borderRadius: 20, }, latlng: { width: 200, alignItems: 'stretch', }, button: { width: 80, paddingHorizontal: 12, alignItems: 'center', marginHorizontal: 10, }, buttonContainer: { flexDirection: 'row', marginVertical: 20, backgroundColor: 'transparent', }, }); module.exports = Overlays;