我正在尝试使用Arduino,GPS模块和GSM进行爬行者。
我可以收到纬度,经度,并以短信方式发送到手机,但是在手机上,我正在尝试构建一个我正在学习的反应本地应用程序,该应用程序显示了地图上的位置。<<<<<<<<<<<<<<
运行测试,我有此代码来监视传入消息:
import React, { Component } from 'react';
import {
AppRegistry,
Text,
View,
Button
} from 'react-native';
import SmsListener from 'react-native-android-sms-listener';
export default class App extends Component {
//constructor include last message
constructor(props) {
super(props);
this.state = { lastMessage: 1 };
}
sms(){
SmsListener.addListener(message => {
this.setState({ lastMessage: message.body });
});
}
render() {
return (
<View>
<Text> Scheduled jobs: {this.state.lastMessage} </Text>
<Button
title="Buscar"
color="#115E54"
onPress={() => this.sms() }
/>
</View>
);
}
}
和此代码显示地图:
import React, { Component } from 'react';
import {
StyleSheet,
Text,
View
} from 'react-native';
import MapView from 'react-native-maps';
export default class App extends Component {
state = {
latitude: 0.0000,
longitude: 0.0000,
};
render() {
const { region } = this.props;
const { latitude, longitude } = this.state;
console.log(region);
return (
<View style ={styles.container}>
<MapView
initialRegion={{
latitude,
longitude,
latitudeDelta: 0.0042,
longitudeDelta: 0.0031,
}}
style={styles.map}
rotateEnabled={false}
scrollEnabled={false}
//zoomEnabled={false}
showsPointsOfInterest={false}
showBuildings={false}
>
<MapView.Marker
coordinate={{
latitude: 0.0000,
longitude: 0.0000,
}}
/>
</MapView>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
...StyleSheet.absoluteFillObject,
position: 'absolute',
top: 0,
left: 0,
bottom: 0,
right: 0,
justifyContent: 'flex-end',
alignItems: 'center',
},
map: {
...StyleSheet.absoluteFillObject,
},
});
两者都在其功能中功能。
问题在于我以SMS格式获得数据0.0000, 0.0000
,我需要将这些数据分为二,以便能够在latitude
和longitude
我该怎么做?
您可以使用 .split()
将数据分成数组。
const [latitude, longitude] = coordData.split(', ')
其中 coordData = <coordinate string>
。
javascript参考:https://developer.mozilla.org/en-us/docs/web/javascript/reference/Reference/global_objects/string/split/split
您可以这样做:
const [latitude, longitude] = "0.0000, 0.0000".split(', ');