為了實習,我必須創建一個帶有地圖視圖和從API(標準GraphQL API)呼叫的標記的應用程式。但我必須在點擊標記時使地圖放大,我不明白如何才能做到這一點。
我找了一下檔案,我不明白。
animateCamera(camera: Camera, {duration: number})。
但什么是相機物件?我沒有相機物件。我怎么能呼叫animateCamera呢?用Ref (_mapRef.current.animateCamera)?
這是我的代碼 :
<MapView
style={styles.map}。
mapType={viewType}
provider='google'/span>
ref={_map}
>
{users !== undefined && users.map((item, index) => /span> (
<Marker。
key={'user_' index}。
title={item.username}。
description={item.post.data.length ' posts'}。
coordinate={{}。
latitude: item.address.geo.lat,
經度: item.address.geo.lng, item.address.geo.lng。
}}
onCalloutPress={()/span> => {
navigation.navigate('SingleUser', {user: item})
}}
/>
))}
</MapView>
謝謝你的幫助
PS:這是我在Stack上的第一個問題,請不要客氣,如果我錯過了一個規則,請不要猶豫,告訴我!這是我在Stack上的第一個問題。:)
PPS: 為什么每次我編輯這個帖子時,Stack都會洗掉我放在開頭的 "Hello"?
uj5u.com熱心網友回復:
React Native Maps Marker有一個叫做onPress的道具,你可以用它來檢查Marker被點擊的時間。
例如:
<Marker
key={'user_' index}。
title={item.用戶名}
description={item.posts.data.length ' posts'}.
coordinate={{
latitude: item.address.geo.lat,
longitude: item.address.geo.lng.
}}
onCalloutPress={() =>/span> {
navigation.navigate('SingleUser'/span>, {user: item})
}}
onPress={this.onMarkerClicked}。
/>
創建一個函式onMarkerClicked
。onMarkerClicked = () => {
_map?.current?.getCamera().then((camera) => //span> {
camera.zoom = 1;
map?.current?.animateCamera(camera)。
});
相機物件默認存在,以跟蹤以下屬性
export 介面 Camera {
center: LatLng;
標題: 數字。
pitch: number;
zoom: 數字。
altitude: number;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/309154.html
標籤:
