我需要保留所有数据。我的数据如下:
时间,2(平均位置),纬度,经度,3(平均加速度计)x,y,z,
4(平均陀螺仪),x,y,z,5(平均磁强计),x,y,z。
所以,我只声明“sendData”变量
但我的代码中有一些错误。谢谢你的支持。
这是我的代码。
import React, { Component, PropTypes } from 'react';
import {
StyleSheet,
View,
Text,
Image,
Dimensions,
TouchableOpacity,
MapView,
zoom,
DeviceEventEmitter
} from 'react-native';
import {Accelerometer, Gyroscope, Magnetometer} from 'NativeModules';
var {height, width} = Dimensions.get('window');
import api from './api';
import Profile from './Profile';
import ScrollableTabView, {DefaultTabBar, ScrollableTabBar } from 'react-native-scrollable-tab-view';
import Info from './Info';
// import motion from './motion';
var d = new Date();
var milliseconds = d.getTime();
var sendData = [{this.state.time}, 2, {this.state.region.latitude}, {this.state.region.longitude},
3, {this.state.Accx}, {this.state.Accy}, {this.state.Accz},
4, {this.state.Gyx}, {this.state.Gyy}, {this.state.Gyz},
5, {this.state.Magx}, {this.state.Magy}, {this.state.Magz}];
export default class Route2 extends Component {
constructor(props){
super(props);
this.state = {
time: '',
Accx: 0,
Accy: 0,
Accz: 0,
Gyx: 0,
Gyy: 0,
Gyz: 0,
Magx: 0,
Magy: 0,
Magz: 0,
region: {
latitude: 13.980881,
longitude: 100.5545009,
}
};
this.onRegionChange = this.onRegionChange.bind(this);
}
componentDidMount() {
setInterval(() => {
this.setState({
time: new Date().getTime()
});
}, 1000);
Accelerometer.setAccelerometerUpdateInterval(0.1); // in seconds
DeviceEventEmitter.addListener('AccelerationData', (data) => {
this.setState({
Accx: data.acceleration.x,
Accy: data.acceleration.y,
Accz: data.acceleration.z,
});
});
Accelerometer.startAccelerometerUpdates(); // you'll start getting AccelerationData events above
Gyroscope.setGyroUpdateInterval(0.1); // in seconds
DeviceEventEmitter.addListener('GyroData', (data) => {
this.setState({
Gyx: data.rotationRate.x,
Gyy: data.rotationRate.y,
Gyz: data.rotationRate.z,
});
});
Gyroscope.startGyroUpdates(); // you'll start getting GyroscopicData events above
Magnetometer.setMagnetometerUpdateInterval(0.1); // in seconds
DeviceEventEmitter.addListener('MagnetometerData', (data) => {
this.setState({
Magx: data.magneticField.x,
Magy: data.magneticField.y,
Magz: data.magneticField.z,
});
});
Magnetometer.startMagnetometerUpdates(); // you'll start getting MagnetomerData events above
}
onRegionChange(region) {
this.setState({ region });
}
render() {
return (
<View style={styles.container}>
<MapView style={styles.map}
mapType="standard"
showsUserLocation={true}
followsUserLocation={true}
showsCompass={false}
showsPointOfInterest={false}
region={this.state.region}
onRegionChange={this.onRegionChange}
>
</MapView>
<View style={styles.container}>
<Text>
Data: {this.state.time}, 2, {this.state.region.latitude}, {this.state.region.longitude},
3, {this.state.Accx}, {this.state.Accy}, {this.state.Accz},
4, {this.state.Gyx}, {this.state.Gyy}, {this.state.Gyz},
5, {this.state.Magx}, {this.state.Magy}, {this.state.Magz}{'\n'}
</Text>
</View>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: 'white'
},
image: {
width: 200,
height: 200,
},
text: {
color: 'white',
fontWeight: 'bold',
backgroundColor: 'transparent',
marginTop: 20,
},
map: {
top: 0,
width: width,
height: height*2/3
}
});
答案 0 :(得分:0)
尝试在gcloud topic projections
课程中声明sendData
。最有可能出现错误的原因是您尝试在类声明之外通过Route2
访问Route2
州。