**React Native Maps** - 如何放大按下的标记?
**React Native Maps** - How do I zoom on Marker pressed?
对于我的实习,我必须创建一个带有地图视图和从 API(标准 GraphQL API)调用的标记的应用程序。但是当我点击它时我必须让地图在标记上缩放,我不明白我该怎么做。
我查找了文档,但我不明白:
animateCamera(camera: Camera, {duration: number})
但什么是相机对象?我没有。我如何调用 animateCamera ?有参考 (_mapRef.current.animateCamera) ?
这是我的代码:
<MapView
style={styles.map}
mapType={viewType}
provider='google'
ref={_map}
>
{users !== undefined && users.map((item, index) => (
<Marker
key={'user_' + index}
title={item.username}
description={item.posts.data.length + ' posts'}
coordinate={{
latitude: item.address.geo.lat,
longitude: item.address.geo.lng
}}
onCalloutPress={() => {
navigation.navigate('SingleUser', {user: item})
}}
/>
))}
</MapView>
感谢您的帮助
PS:这是我在 Stack 上的第一个问题,请不要无礼,如果我错过了规则,请不要犹豫告诉我! :)
PPS:为什么 Stack 会删除我每次编辑此 post 时放在开头的 'Hello'?
React Native Maps Marker 有一个名为 onPress 的道具,您可以使用它来检查何时单击了标记。
例如:
<Marker
key={'user_' + index}
title={item.username}
description={item.posts.data.length + ' posts'}
coordinate={{
latitude: item.address.geo.lat,
longitude: item.address.geo.lng
}}
onCalloutPress={() => {
navigation.navigate('SingleUser', {user: item})
}}
onPress={this.onMarkerClicked}
/>
创建 onMarkerClicked 函数
onMarkerClicked = () => {
_map?.current?.getCamera().then((camera) => {
camera.zoom += 1;
map?.current?.animateCamera(camera);
});
相机对象默认存在以跟踪以下属性
export interface Camera {
center: LatLng;
heading: number;
pitch: number;
zoom: number;
altitude: number;
}
对于我的实习,我必须创建一个带有地图视图和从 API(标准 GraphQL API)调用的标记的应用程序。但是当我点击它时我必须让地图在标记上缩放,我不明白我该怎么做。
我查找了文档,但我不明白:
animateCamera(camera: Camera, {duration: number})
但什么是相机对象?我没有。我如何调用 animateCamera ?有参考 (_mapRef.current.animateCamera) ?
这是我的代码:
<MapView
style={styles.map}
mapType={viewType}
provider='google'
ref={_map}
>
{users !== undefined && users.map((item, index) => (
<Marker
key={'user_' + index}
title={item.username}
description={item.posts.data.length + ' posts'}
coordinate={{
latitude: item.address.geo.lat,
longitude: item.address.geo.lng
}}
onCalloutPress={() => {
navigation.navigate('SingleUser', {user: item})
}}
/>
))}
</MapView>
感谢您的帮助
PS:这是我在 Stack 上的第一个问题,请不要无礼,如果我错过了规则,请不要犹豫告诉我! :)
PPS:为什么 Stack 会删除我每次编辑此 post 时放在开头的 'Hello'?
React Native Maps Marker 有一个名为 onPress 的道具,您可以使用它来检查何时单击了标记。
例如:
<Marker
key={'user_' + index}
title={item.username}
description={item.posts.data.length + ' posts'}
coordinate={{
latitude: item.address.geo.lat,
longitude: item.address.geo.lng
}}
onCalloutPress={() => {
navigation.navigate('SingleUser', {user: item})
}}
onPress={this.onMarkerClicked}
/>
创建 onMarkerClicked 函数
onMarkerClicked = () => {
_map?.current?.getCamera().then((camera) => {
camera.zoom += 1;
map?.current?.animateCamera(camera);
});
相机对象默认存在以跟踪以下属性
export interface Camera {
center: LatLng;
heading: number;
pitch: number;
zoom: number;
altitude: number;
}