我仅将react-native-maps
用于我的应用程序。我在地图中有很多逻辑。有标记,热图(使用react-native-heatmaps
程序包)和多边形(使用react-native-maps-directions
程序包)。
今天我想重构我的Map组件,因此我将功能分为两部分-重构之前,我的MapView具有以下结构
<MapView>
<Heatmap {Some props here} />
{some function that will render a couple of Markers}
{some function that will render a cople of MapViewDirections}
</MapView>
这曾经在Android和iOS上都可以使用。
重构后,它看起来像这样:
<MapView>
<MyPointsComponent />
<MyRoadsComponent />
</MapView>
这在Android中的工作方式与以前相同,但是在iOS上,它不会在地图上显示任何内容。
然后我测试了可能的最小示例:
<MapView>
<View>
<Marker coordinates={{somecoordinates}} />
</View>
</MapView>
这同时适用于iOS和Android
<MapView>
<MyComponentThatReturnsAMArker />
</MapView>
这对iOS和Android均有效,与标记的加载位置无关。
<MapView>
<View>
<MyComponentThatReturnsAMArker />
</View>
</MapView>
如果标记是本地标记,则此标记在iOS和Android上均适用-自地图初始加载后开始填充。
这不适用于iOS,但如果标记是从后端动态加载的,则可以在Android上使用,因此稍后会填充(不在初始加载时)
我正在寻找双向解决方案:
P.S。由于有热图,我在iOS上使用Google Maps提供程序,但我不能放弃。