В моем файле JSON у меня есть широта и долгота пункта назначения. В любом случае, я могу рассчитать расстояние в милях от текущего местоположения пользователя. Пока у меня есть следующий код. Я могу видеть карту со следующим кодом, но я не могу видеть мили от текущего местоположения пользователя и карту от текущего местоположения пользователя. Я не знаю долготу и широту текущего местоположения пользователя. Все, что я знаю, это долгота и широта пункта назначения. Код ниже просто показывает место, где находятся долгота и широта местоположения.
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react';
import { Text, View, StyleSheet, Image, ScrollView, TouchableOpacity, Linking, Button } from 'react-native';
import { connect } from 'react-redux';
import { getTheme } from 'react-native-material-kit';
import EvilIcon from 'react-native-vector-icons/EvilIcons';
import MaterialIcon from 'react-native-vector-icons/MaterialIcons';
import SimpleIcon from 'react-native-vector-icons/SimpleLineIcons';
import * as actions from '../actions';
import getDirections from 'react-native-google-maps-directions'
const theme = getTheme();
const styles = StyleSheet.create({
card: {
marginTop: 10,
paddingBottom: 20,
marginBottom: 20,
borderColor: 'lightgrey',
borderWidth: 0.5,
},
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#4F6D7A',
height: 500,
alignSelf:'center',
width:500,
position: 'relative',
marginTop: 5,
top: 10
},
title1: {
top: 10,
left: 80,
fontSize: 24,
},
title2: {
top: 35,
left: 82,
fontSize: 18,
},
image: {
flex: 0,
height: 100,
width: 333,
backgroundColor: 'transparent',
justifyContent: 'center',
alignItems: 'center',
},
closeIcon: {
position: 'absolute',
top: 5,
left: 295,
color: 'black'
},
icon: {
position: 'absolute',
top: 15,
left: 0
},
textArea: {
flexDirection: 'row',
paddingLeft: 20,
paddingTop: 10,
width: 260,
},
textIcons: {
color: '#26a69a',
},
actionArea: {
paddingTop: 10,
flexDirection: 'row',
justifyContent: 'space-around',
alignItems: 'center',
},
title:{
justifyContent: 'center',
paddingTop: 10,
alignItems: 'center',
alignSelf: 'center',
fontWeight: 'bold',
fontSize: 22,
color: 'black'
},
SerContent:{
fontWeight: 'bold',
fontSize: 16,
paddingTop: 10,
alignSelf: 'center',
color: 'black'
},
underLineText: {
fontSize: 17,
textDecorationLine: 'underline',
color: 'black',
fontWeight: 'bold',
textAlign: 'center',
},
dir:{
flexDirection:'row',
paddingTop: 30,
textAlign: 'center',
fontSize: 17,
alignSelf: 'center'
} ,
Address1:{
alignSelf: 'center',
marginRight: 20,
fontSize: 17,
fontWeight: 'bold',
color: 'black'
},
toolbar:{
flexDirection:'row' , //Step 1
},
toolbarTitle:{
width: 10,
top: 0,
left: 0,
bottom: 0,
right: 0,
flex:1 //Step 3
},
buttonShape:{
margin: 40,
width:160,
marginLeft: 80,
backgroundColor:'#00BCD4',
},
});
class ServiceDetail extends Component {
render() {
var destUrl = 'https://www.google.com/maps/search/?api=1&query=' + this.props.services.destAddr1 + '+' + 'field'
return (
<View>
<View>
<Text style = {styles.title}>{this.props.services.ser}</Text>
<Text style = {styles.SerContent} >Service is available in the following locations:</Text>
</View>
<View style = {styles.dir}>
<Text style = {styles.Address1}> {this.props.services.Location}:</Text>
<TouchableOpacity onPress = {() => Linking.openURL(destUrl)}>
<Text style = {styles.underLineText}>Directions</Text>
</TouchableOpacity>
</View>
</View>
);
}
}
const mapStateToProps = state => {
return {
services: state.serviceSelected
};
};
export default connect(mapStateToProps, actions)(ServiceDetail);
Ниже мой файл JSON
[
{
"id":1,
"ser": "Service1",
"Location": "TestLoc1",
"Phone":"(999)-921-9292",
"SecondLoc": "TestLoc",
"email":"[email protected]",
"sourceLat":"33.977806",
"sourceLong":"-117.3732541",
"destLatL1":"33.613355",
"destLongL1":"-114.596569",
"destLatL2":"33.761693",
"destLongL2":"-116.971169",
"destAddr1": "Test Drive, 99999",
"destAddr2": "Test City, Test Drive, 92345"
},
{
"id":1,
"ser": "Service2",
"Location": "TestLoc1",
"Phone":"(999)-921-9292",
"SecondLoc": "TestLoc",
"email":"[email protected]",
"sourceLat":"33.977806",
"sourceLong":"-117.373261",
"destLatL1":"33.613355",
"destLongL1":"-114.596569",
"destLatL2":"33.761693",
"destLongL2":"-116.971169",
"destAddr1": "Test Drive, 99999",
"destAddr2": "Test City, Test Drive, 92345"
},
]
Любая помощь будет оценена.
Я новичок, чтобы реагировать на родной язык, однако на моем мобильном телефоне карты Google знают мое текущее местоположение. Я никогда не указываю в нем свое текущее местоположение. Я просто указываю пункты назначения, и он дает мне направления, включая расстояние и карту
Я погуглил и обнаружил, что это способ узнать текущее местоположение. Мне просто нужно установить начальный адрес Current+Location
. Мне не нужны долгота и широта, а я этого и хотел.
https://maps.google.com?saddr=Current+Location&daddr=43.12345,-76.12345
Затем просто погуглите "получить текущее местоположение в реагирующем родном"
Мне просто нужно указать широту и долготу пункта назначения, и я получу карту
Что еще за вопрос? Вы хотите знать, как получить свое текущее местоположение в React Native и правильно рассчитать расстояние между вами и некоторыми другими координатами?
Если вы не знаете текущее местоположение пользователя, невозможно рассчитать расстояние до заданного места назначения. Вы пишете, что Google Maps знает ваше текущее местоположение, не указывая в нем ваше местоположение. Это потому, что Google Maps проверяет GPS вашего телефона.
Вы тоже можете это сделать! React Native поставляется с API геолокации, который помогает вам получить текущее местоположение пользователя. Для Android вам необходимо обновить AndroidManifest.xml
, чтобы получить разрешение пользователя на доступ к данным GPS. Для iOS он включен по умолчанию, но если вы хотите получить доступ, пока приложение работает в фоновом режиме; вам необходимо обновить Info.plist
.
Для получения дополнительной информации о получении разрешений и использовании API геолокации ознакомьтесь с React Native docs.
Вы сказали: «Я не знаю долготу и широту текущего местоположения пользователя». - если вы не знаете местоположение пользователя, будет ОЧЕНЬ сложно рассчитать расстояние оттуда до пункта назначения.