使用 Shapely 从点创建 LineString 的函数
Function to create LineString from Points using Shapely
我有一个积分列表:
points = [Point(2.2, 4.2), Point(7.2, -25.1), Point(9.26, -2.456)]
我正在尝试编写一个函数来检查此列表是否包含点对象和 return 然后是 LineString,到目前为止:
def createLineGeom(giveLine):
if type(giveLine) is shapely.geometry.point.Point:
return LineString(giveLine)
else:
return 'pointList must contain shapely point object(s)'
我只能 return 来自 createLineGeom(points) 的 else 消息。不确定我的问题是出在 type() 函数还是我的第一个 return 语句,我是一个编写函数的初学者。
谢谢!
J_H 回答后更新
vertices = [Point(2.2, 4.2), Point(7.2, -25.1), Point(9.26, -2.456)]
# function
def createLineGeom(giveLine):
if isinstance(giveLine, Point):
return LineString(giveLine)
仍然 return
没有价值
pls_work = createLineGeom(vertices)
使用print(type(giveLine))
了解对象的类型。
您可能想使用 isinstance() 来决定它是否是一个点。更好的是,勇往直前,尝试使用论点。如果它不是合适的类型,您将获得一个有用的堆栈跟踪来解释问题。
感谢@J_H 用 isinstance() 为我指明了正确的方向。我不确定我的解决方案是否是最有效的选择,但它确实有效!
def createLineGeom(inList):
if all(isinstance(x, Point) for x in inList) is True:
return LineString(inList)
else:
return 'pointList must contain shapely point object(s)'
编辑: 修复了缩进
我有一个积分列表:
points = [Point(2.2, 4.2), Point(7.2, -25.1), Point(9.26, -2.456)]
我正在尝试编写一个函数来检查此列表是否包含点对象和 return 然后是 LineString,到目前为止:
def createLineGeom(giveLine):
if type(giveLine) is shapely.geometry.point.Point:
return LineString(giveLine)
else:
return 'pointList must contain shapely point object(s)'
我只能 return 来自 createLineGeom(points) 的 else 消息。不确定我的问题是出在 type() 函数还是我的第一个 return 语句,我是一个编写函数的初学者。
谢谢!
J_H 回答后更新
vertices = [Point(2.2, 4.2), Point(7.2, -25.1), Point(9.26, -2.456)]
# function
def createLineGeom(giveLine):
if isinstance(giveLine, Point):
return LineString(giveLine)
仍然 return
没有价值pls_work = createLineGeom(vertices)
使用print(type(giveLine))
了解对象的类型。
您可能想使用 isinstance() 来决定它是否是一个点。更好的是,勇往直前,尝试使用论点。如果它不是合适的类型,您将获得一个有用的堆栈跟踪来解释问题。
感谢@J_H 用 isinstance() 为我指明了正确的方向。我不确定我的解决方案是否是最有效的选择,但它确实有效!
def createLineGeom(inList):
if all(isinstance(x, Point) for x in inList) is True:
return LineString(inList)
else:
return 'pointList must contain shapely point object(s)'
编辑: 修复了缩进