def nearest_point(self, point):
'''Find nearest point in geometry, measured from given point.'''
if isinstance(self.location, Polygon):
segs = self.pairs(self.location.exterior.coords)
elif isinstance(self.location, LineString):
segs = self.pairs(self.location.coords)
else:
raise NotImplementedError('project_point_to_object not implemented'
"for geometry type '{}'.".format(
self.location.type))
nearest_point = None
min_dist = float("inf")
for seg_start, seg_end in segs:
line_start = Point(seg_start)
line_end = Point(seg_end)
intersection_point = self.project_point_to_line(
point, line_start, line_end)
cur_dist = point.distance(intersection_point)
if cur_dist < min_dist:
min_dist = cur_dist
nearest_point = intersection_point
return nearest_point
评论列表
文章目录