Javascript 如何从数组中仅获取经度和纬度
Noob提出了一些问题,但找不到一个好答案, 我试图只得到经度和纬度,最好是用不同的字符串。目前它可以工作,但它记录了以下内容:Javascript 如何从数组中仅获取经度和纬度,javascript,react-native,Javascript,React Native,Noob提出了一些问题,但找不到一个好答案, 我试图只得到经度和纬度,最好是用不同的字符串。目前它可以工作,但它记录了以下内容: Object { "coords": Object { "accuracy": 5, "altitude": 0, "altitudeAccuracy": -1, "heading": -1, "latitude": 37.785834, "longitude": -122.406417, "speed":
Object {
"coords": Object {
"accuracy": 5,
"altitude": 0,
"altitudeAccuracy": -1,
"heading": -1,
"latitude": 37.785834,
"longitude": -122.406417,
"speed": -1,
},
"timestamp": 1577094980806.544,
这是代码:
import styled from "styled-components";
import * as Permissions from "expo-permissions";
import * as Location from "expo-location";
export default class GetLocation extends React.Component {
state = {
location: {},
errorMessage: ""
};
constructor(props) {
super(props);
this.state = {
longitude: [],
latitude: []
};
}
componentDidMount() {
this._getLocation();
}
_getLocation = async () => {
const { status } = await Permissions.askAsync(Permissions.LOCATION);
if (status !== "granted") {
console.log("PERMISSION NOT GRANTED!");
this.setState({
errorMessage: "PERMISSION NOT GRANTED"
});
}
const location = await Location.getCurrentPositionAsync();
this.setState({
location
});
return location.JSON;
};
render() {
console.log(this.state.location);
return (
<View>
<Text>{JSON.stringify(this.state.location)}</Text>
</View>
);
}
}
const View = styled.View``;
const Text = styled.Text`
font-size: 12px;
color: black;
`;
从“样式化组件”导入样式化;
从“expo Permissions”导入*作为权限;
从“世博会地点”导入*作为地点;
导出默认类GetLocation扩展React.Component{
状态={
地点:{},
错误信息:“
};
建造师(道具){
超级(道具);
此.state={
经度:[],
纬度:[]
};
}
componentDidMount(){
这个;
}
_getLocation=async()=>{
const{status}=wait Permissions.askAsync(Permissions.LOCATION);
如果(状态!=“已授予”){
log(“未授予权限!”);
这是我的国家({
错误消息:“未授予权限”
});
}
const location=await location.getCurrentPositionAsync();
这是我的国家({
位置
});
return location.JSON;
};
render(){
console.log(this.state.location);
返回(
{JSON.stringify(this.state.location)}
);
}
}
const View=styled.View`;
const Text=styled.Text`
字体大小:12px;
颜色:黑色;
`;
我想导出经度和纬度。我知道代码有点乱。非常感谢您的建议。您是否尝试通过以下方式访问:
console.log(this.state.location.coords.latitude);
无需解析JSON,它已经是一个对象:
const location = await Location.getCurrentPositionAsync();
this.setState({
location : {
lat: location.coords.latitude,
lon: location.coords.longitude
}
});
呈现:
<View>
<Text>{this.state.location.lat} {this.state.location.lon} </Text>
</View>
{this.state.location.lat}{this.state.location.lon}
您可以使用
试试这个:
let locationObj={
“coords”:{
“准确性”:5,
“高度”:0,
“高度准确性”:-1,
“标题”:-1,
“纬度”:37.785834,
“经度”:-122.406417,
“速度”:-1,
},
“时间戳”:157709490806.544,
}
常量res=({纬度,经度})=>({纬度,经度}))(locationObj.coords);
控制台日志(res)代码>所以你不能从一个对象中提取两个属性?o。O@Andreas正如我所说,这是一个全新的想法,我希望得到一个建议。谢谢解决方案在“您的”脚本中。我的建议?研究。没有证书你不能游泳。你会淹死的。换句话说:在你开始胡乱处理那些对你来说太复杂而无法理解的代码之前,先学习基础知识。否则,您将不得不继续问越来越多的问题,因为您不知道自己在做什么。undefined不是一个对象(评估'this.state.location.coords')替换为this!谢谢,但是我现在怎么打印呢DEdited我建议你对官方文件做一个基本的介绍,although@ZohirSalakOP正在使用=>
函数,所以我继续使用相同的方法。如果您有更好的解决方案,欢迎您发布。