gpt4 book ai didi

javascript - 如何防止用户使用 Google map 绘图管理器创建自相交多边形?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:30 26 4
gpt4 key购买 nike

我正在使用 Google Maps Drawing Manager允许用户绘制多边形。

用户可以绘制一个多边形,但它必须是一个“简单”的多边形,而不是“复杂”的,即它不能自相交。

Google map 库似乎没有对检测/防止自相交的任何内置支持,因此我计划监听用户创建每个点,然后运行检测算法来检查当前是否折线/线串自相交。

不幸的是唯一events in the documentation是overlaycomplete事件。

我可以等到用户完成绘制他们的多边形后再验证它并告诉他们这是不允许的,但如果我能阻止他们把点放在第一位,这将是一个更好的体验,可能会拯救他们浪费了很多时间和精力。

我可以使用我需要的功能构建我自己的绘图工具,但是当 Google 提供的产品与我的需求非常接近时,我宁愿避免创建和维护这样的东西。

我已经准备好验证代码,我正在使用 similar questions here on SO 提供的 JSTS 代码,这是我要问的绘图管理器功能。

最佳答案

我发现没有关于用户将每个点放置在多边形中的时间的记录事件,您只有完成创建多边形时的事件。

所以我只能使用它,直到我有时间从头开始制作我自己的绘图管理器。

另外,JSTS 非常大(缩小后的文件大小),所以我放弃了它。

由于我的多边形的点数总是很低,所以我采用了一种更简单的方法,我测试了多边形中的每条线,看它们是否与多边形中的任何其他线相交。这相当“蛮力”,但它仍然足够快,不会被最终用户注意到。

关于javascript - 如何防止用户使用 Google map 绘图管理器创建自相交多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com