Added waypoint markers and polyline.

main
lesmaux 7 years ago
parent 4353681184
commit 00b4616367

128
App.js

@ -22,87 +22,79 @@ const instructions = Platform.select({
'Shake or press menu button for dev menu', 'Shake or press menu button for dev menu',
}); });
{/*<View style={{flex: 1}}>*/}
{/*<MapView style={styles.map}*/}
{/*showsUserLocation*/}
{/*followsUserLocation*/}
{/*initialRegion={{*/}
{/*latitude: 37.33307,*/}
{/*longitude: -122.0324,*/}
{/*latitudeDelta: 0.02,*/}
{/*longitudeDelta: 0.02*/}
{/*}}*/}
{/*/>*/}
type Props = {}; type Props = {};
let id = 0;
export default class App extends Component<Props> { export default class App extends Component<Props> {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { markers: [] };
let ds = new ListView.DataSource({rowHasChanged: (a, b) => a !== b});
this.state = {dataSource: ds.cloneWithRows([
'john', 'joel', 'miki', 'iu lol', 'yeeet',
'john', 'joel', 'miki', 'iu lol', 'yeeet',
'john', 'joel', 'miki', 'iu lol', 'yeeet',
'john', 'joel', 'miki', 'iu lol', 'yeeet',
'john', 'joel', 'miki', 'iu lol', 'yeeet',
])};
setInterval(() => { setInterval(() => {
// this.distanceInfo.setState({value: Math.random() * 100}); this.distanceInfo.setState({value: Math.random() * 100});
// this.speedInfo.setState({value: Math.random() * 15}); this.speedInfo.setState({value: Math.random() * 15});
// this.directionInfo.setState({value: this.directionInfo.state === 'N' ? 'NW' : 'N'}); this.directionInfo.setState({value: this.directionInfo.state === 'N' ? 'NW' : 'N'});
}, 1000); }, 1000);
let watchID = navigator.geolocation.watchPosition((position) => {
this.setState({
markers: [
...this.state.markers, {
coordinate: position.coords,
key: id++
}
]
}, null, {distanceFilter: 1});
});
this.state = {markers: [], watchID };
} }
componentWillUnmount() {
navigator.geolocation.stopWatch(this.state.watchID);
}
render() { render() {
return ( return (
<ListView <View style ={{flex: 1}}>
dataSource={this.state.dataSource} <MapView
renderSeparator={() => <View style = {{backgroundColor: '#CCC', height: 1}}/>} showsUserLocation
renderRow={(row) => ( style = {styles.map}
<View style={{flexDirection: 'row'}}> initialRegion={{
<Image source = {{uri: 'https://i.imgur.com/Zbv1S4G.png'}} style = {{width: 50, margin: 10}}/> latitude: -43.5610623,
<Text style = {{fontSize: 25, padding: 10}}>{row}</Text> longitude: 172.5655853,
</View> latitudeDelta: 0.02,
)} longitudeDelta: 0.02,
}}
// onRegionChange = {(region)=> this.addMarker((region))}
>
<MapView.Polyline
coordinates={this.state.markers.map((marker) => marker.coordinate)}
strokeWidth={5}
/> />
// <View style ={{flex: 1}}> {/*{this.state.markers.map((marker) => (*/}
// <TextInput {/*<MapView.Marker coordinate = {marker.coordinate} key={marker.key} />*/}
// style={styles.textInput} {/*))}*/}
// autoCapitalize="words" </MapView>
// placeholder="Type something"
// onChangeText={(text) => this.setState({text})}
// onBlur={() => this.setState({ text: this.state.text.toUpperCase() })} <View style={styles.infoWrapper}>
// />
// <RunInfoNumeric title = "Distance"
// <TouchableHighlight unit="km"
// onPress={() => this.setState({confirmedText: this.state.text})} ref={(info) => this.distanceInfo = info}
// onLongPress={() => this.setState({confirmedText: this.state.text.toLowerCase()})} />
// > <RunInfoNumeric title = "Speed"
// <Text style={{fontSize: 16, backgroundColor: '#EEE', textAlign: 'center'}}>Press Me</Text> unit="km/h"
// </TouchableHighlight> ref={(info) => this.speedInfo = info}
// />
// <Text style={{flex: 1, fontSize: 18}}> <RunInfo title = "Direction"
// {this.state.confirmedText} value = "NE"
// </Text> ref={(info) => this.directionInfo = info}
// />
// <View style={styles.infoWrapper}> </View>
// </View>
// <RunInfoNumeric title = "Distance"
// unit="km"
// ref={(info) => this.distanceInfo = info}
// />
// <RunInfoNumeric title = "Speed"
// unit="km/h"
// ref={(info) => this.speedInfo = info}
// />
// <RunInfo title = "Direction"
// value = "NE"
// ref={(info) => this.directionInfo = info}
// />
// </View>
// </View>
); );
} }
} }

Loading…
Cancel
Save