223*_*eca 5 google-maps ios geofencing react-native react-native-maps
我在React Native中创建了一个应用程序.应用程序的一部分是由多边形表示的地理围栏,我希望用户能够使用他们的手指轻松拖动和调整多边形.
Google Maps API文档提供了使用纯JavaScript拖动(但不调整大小)多边形的明显示例.但是,由于直接将Google地图集成到React中似乎没有真正起作用,我使用的是react-native-maps.似乎多边形的可拖动属性在那里不可用.A marker可以拖动,我可能会根据标记的新位置重新渲染多边形,但是1)标记拖动速度很慢,需要在标记上升一秒钟之前将标记向下推,并且2)重新开始-render不会流动.这就是拖动标记的样子(请注意我还没有对多边形重新渲染进行编码):
它很笨重 - 你通常需要按几次才能真正拿起标记.动画很慢.如果你没有关闭mapview滚动(我有,但它需要在生产中),你经常最终滚动地图而不是移动标记.
我知道我想要的是可能的,因为我经常使用的应用程序做了类似的事情.见下文:
这个应用程序显然使用谷歌地图,虽然我无法验证它是否使用React Native.如何实现相同的流动性和易用性?
编辑1:鉴于浪费时间的浪费动画marker似乎硬编码,我相当肯定成功解决我的问题根本不会使用markers.来自另一个应用程序的工作示例似乎也没有使用它们.
值得注意的是,如果我添加onPress= { (e) => console.log(e.nativeEvent.coordinate) }到MapView组件,无论我在地图上单击哪里,都会获得纬度/经度的即时控制台日志.应该可以将这些点存储在定义多边形形状的对象中.然后问题变成1)如何流畅地重新渲染多边形(并且只有多边形),以及2)当你不使用时,MapView API不具有在按下时连续触发的事件marker.
另一方面,API 确实具有一个事件,onMarkerDrag在拖动时会持续触发marker.
希望这对您有帮助:
那里有一个关于这个主题的已关闭问题,看起来它会起作用。
https://github.com/react-community/react-native-maps/issues/1685
您的示例和建议让我想知道您是否应该让可拖动标记不可见但较大且位于多边形的角上。
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |