我有此数据,我也想获得latitudeDelta/longitudeDelta
geometry:{
location:{
lat:35.7212504,
lng:51.36276979999999
},
viewport:{
northeast:{lat: 35.7290254, lng: 51.380868},
southwest:{lat: 35.7004529, lng: 51.3492823},
}
}
我将获得latitudeDelta/longitudeDelta
的数据
当然,我会说我使用react-native-google-places-autocomplete
并输出此数据
答案 0 :(得分:1)
const { width, height } = Dimensions.get('window');
const ASPECT_RATIO = width / height;
const LATITUDE_DELTA = 0.0922;
const lat = details.geometry.location.lat;
const lng = details.geometry.location.lng;
const latDelta = details.geometry.viewport.northeast.lat - details.geometry.viewport.southwest.lat;
const lngDelta = latDelta * ASPECT_RATIO;
let coordinate = {
latitude: lat,
longitude: lng,
latitudeDelta: latDelta,
longitudeDelta: lngDelta
};
答案 1 :(得分:1)
如果“从视口中的 ”表示“ 地图当前在其纬度-经度位置和当前缩放级别(纬度和经度增量)上显示的”,您可以:
如Exilz在his comment on a github issue中所说
...可以通过事件onRegionChangeComplete
获取区域值。
如果要以编程方式放大任何内容,可以使用方法animateToRegion
并传递坐标和从onRegionChangeComplete
获得的增量。您只需捏住地图即可找到所需的“缩放”,并记下这些值。
这是他的代码示例,可在其中一个标记上居中/缩放地图:
onPressMarker (markerData) {
this.setState({ openedMarker: markerData });
this.refs.map.animateToRegion({
latitude: parseFloat(markerData.latitude),
longitude: parseFloat(markerData.longitude),
latitudeDelta: 0.0043,
longitudeDelta: 0.0034
});
}
我主要复制了他的内容,因此我敦促您浏览github问题并喜欢他的评论。