At first, render everything works fine, but as soon as a user tries to filter marker through rest api after this step user zoom out or zoom in a map default marker pin generate on custom marker
dependence:- react-native-maps
check the recording video:- Video Link
<MapView
ref={mapRef}
rotateEnabled={false}
shouldRasterizeIOS
mapType="standard"
style={styles.map}
initialRegion={INITIAL_REGION}
>
{data &&
data?.map(item => (
<CustomMarker
item={item}
key={item?.id}
setSelectedMarkerId={(row: any) => {
mapRef?.current?.animateToRegion(
{
latitude: Number(row?.lat),
longitude: Number(row?.long),
latitudeDelta: 0.002,
longitudeDelta: 0.002,
},
1000,
);
}}
coordinate={{
latitude: Number(item?.lat),
longitude: Number(item?.long),
}}
/>
))}
</MapView>
here is my custom Marker Code:-
const CustomMarker = ({ item, setSelectedMarkerId, setIsMarkerDetailShow , coordinate }) => {
const [tracksViewChanges, setTracksViewChanges] = useState(true);
return (
<Marker
tracksViewChanges={tracksViewChanges}
coordinate={coordinate}
onPress={() => {
setSelectedMarkerId(item);
// setIsMarkerDetailShow(true);
}}
>
<View>
{item?.abribois ? (
<Image
source={require('src/assets/images/greenMarker.png')}
style={{
height: 30,
width: 30,
resizeMode: 'contain',
}}
onLoadEnd={() => setTracksViewChanges(false)}
/>
) : (
<Image
source={require('src/assets/images/blueMarker.png')}
style={{
height: 30,
width: 30,
resizeMode: 'contain',
}}
onLoadEnd={() => setTracksViewChanges(false)}
/>
)}
</View>
</Marker>
);
};
export default CustomMarker;

this issue to be connected with react-native-reanimated.
after some research i found this solution and its worked for me
react-native-maps-reanimated-issue-patches
See this Examaple