我想创建缓冲的多边形位置(城镇,村庄等),以便用它们进行半径搜索。
这就是我想要实现的目标(ilustration的单位):
这就是我在pyclipper中的表现方式:
import pyclipper
coordinates = # Array of lat,lng tuples
clipper_offset = pyclipper.PyclipperOffset()
coordinates = pyclipper.scale_to_clipper(coordinates)
clipper_offset.AddPath(coordinates, pyclipper.JT_ROUND,
pyclipper.ET_CLOSEDPOLYGON)
scaled_coordinates = clipper_offset.Execute(1000.0)
scaled_coordinates = pyclipper.scale_from_clipper(scaled_coordinates)
数字1000.0是任意的,我的问题是 - 如何计算Execute方法的正确偏移率,以便偏移的多边形大约代表10,20和50km半径?
顺便说一下。这是解决这个问题的正确方法吗?
答案 0 :(得分:1)
对我有效的方式:
<relation>%rowtype
我的意思是:
new_coordinates = clipper_offset.Execute(pyclipper.scale_to_clipper(10))
10或您需要的任何其他值。
它基于不适合我的baji答案
[scale_to_clipper(x)=> pyclipper.scale_to_clipper(x)]
答案 1 :(得分:0)
您还需要缩放应用的偏移量(到限幅器功能):
scaled_coordinates = clipper_offset.Execute(scale_to_clipper(1000.0))
pyclipper将输入浮点数缩放为64位整数: http://www.angusj.com/delphi/clipper/documentation/Docs/Overview/Rounding.htm