react-native-maps
Version:
React Native Mapview component for iOS + Android
152 lines (144 loc) • 3.33 kB
JavaScript
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;