하나의 마커가있는 정적지도가 있고 항상 마커 콜 아웃을 표시하려고합니다.에어 비앤비 맵에서 콜 아웃을 표시하는 방법은 무엇입니까?
일부 사용자는 MapView
의 onLayout
을 사용하는 것이 좋습니다. 그러나 이것은 지금 당장은 작동하지 않습니다.
가끔은 작동하는 onRegionChangeComplete
으로 해결하려고 시도하지만 약 10 %의 경우 루프에서 멈추어 앱이 다운 될 때까지 반복해서 호출됩니다. 이는 iOS에서만 발생합니다.
이 내 코드 내 접근 뭐가 잘못
setMarkerRef = (ref) => {
this.marker = ref
}
showCallout =() => {
this.marker.showCallout()
}
render() {
...
<MapView
style={{...StyleSheet.absoluteFillObject}}
region={{
latitude: latitude,
longitude: longitude,
latitudeDelta: 0.00922,
longitudeDelta: 0.00421,
}}
showsMyLocationButton={false}
showsCompass={false}
showsTraffic={false}
zoomEnabled={false}
rotateEnabled={false}
scrollEnabled={false}
pitchEnabled={false}
onRegionChangeComplete={this.showCallout}
onPress={this.openMap}
>
<MapView.Marker
coordinate={{
latitude: latitude,
longitude: longitude,
}}
title={address}
ref={this.setMarkerRef}
/>
</MapView>
어떤 생각인가? 누구든지 더 나은 해결 방법이 있습니까?
편집 : 구성 요소가 사용자 상호 작용없이 이처럼 보이길 원합니다. 지도, 마커 및 콜 아웃을 표시하기 만하면됩니다.
당신이 어떤 목적으로 지역의 변화에 고정 된 맵을 렌더링하고 있기 때문에
을 당신이 뭘 하려는지 완전히 확실하지 않다 (위의 애플지도를 위해 작동하지 않는 것처럼 보였다). 좀 더 설명해 주시겠습니까? 항상 표시되는지도의 중심에 고정 된 설명 선을 렌더링하려고합니까? –
안녕하세요, @ KaiwenHuang 내 질문에 그림을 추가했습니다. 나는 사용자가지도와 상호 작용하고, 콜 아웃이 이미 열려있는 상태로지도에 표시해야하는 것을 원하지 않습니다. –
아. 따라서지도에는 스크롤 기능이 비활성화되어 있습니다. 따라서 위도와 경도를 업데이트 할 때마다 해당 좌표에서 표식 및 설명 선을 표시해야합니다. –