【问题标题】:How would I create a function that would check if a coordinate is within a certain map boundary? [duplicate]我将如何创建一个函数来检查坐标是否在某个地图边界内? [复制]
【发布时间】:2021-10-15 05:50:15
【问题描述】:

我在一家披萨店工作,我认为创建代码来检查某个位置是否在我们的送货区域内会很有趣,而不是检查我们拥有的巨大丑陋的地图。我已经创建了将街道地址转换为坐标的代码,但是我该怎么做呢?我们的送货区有很多锯齿形,所以我不能使用基本形状。

裁判投递区:

【问题讨论】:

  • 如果您可以列出多边形所有顶点的街道坐标,那么您的转换函数可以将这些坐标转换为坐标一旦有了坐标,剩下的就很容易了(见链接以上)。
  • 这个问题可能更适合Geographic Information Systems。

标签: python python-3.x


【解决方案1】:

使用https://agromonitoring.com/create-polygon?lat=39.2323&lon=-121.311&zoom=7&op=truecolor&from=s2 定义地理围栏,它基本上是一组代表多边形顶点的纬度/经度坐标。将这些顶点存储为元组列表,我们称之为 serviceAreaCoordinates。

import picket

fence = picket.Fence()
# serviceAreaCoordinates is a list of tuples containing lat, long
for coordinate in serviceAreaCoordinates:
    fence.add_point(tuple(coordinate))

answer = fence.check_point(deliveryLocationCoordinate)

【讨论】:

    【解决方案2】:

    如果我查看您的图像,我的第一印象是您的红色轮廓线,它定义了您的交付区域的边界,可以很容易地用 opencv 提取为轮廓线。然后你会得到一个带有红线坐标的列表。如果客户打电话,那么你已经计算了他的坐标。然后您可以根据轮廓坐标测试您的地址坐标。

    Step1:看一下如何获取轮廓(用opencv for python真的不难): https://learnopencv.com/contour-detection-using-opencv-python-c/

    第 2 步:查看这篇文章以检查一个点是否在轮廓内: How to check if point is placed inside contour?

    【讨论】:

      猜你喜欢
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多