Python GeoJSON到辛几何
有人知道是否可以将GeoJSON几何体转换为Symphy几何体吗? 如果是,这是什么包装? 如果没有,谁能想出一种真正快速的方法来将GeoJSON特性转换为Symphy和Symphy?最好不比线性时间差Python GeoJSON到辛几何,python,python-2.7,python-3.x,geojson,sympy,Python,Python 2.7,Python 3.x,Geojson,Sympy,有人知道是否可以将GeoJSON几何体转换为Symphy几何体吗? 如果是,这是什么包装? 如果没有,谁能想出一种真正快速的方法来将GeoJSON特性转换为Symphy和Symphy?最好不比线性时间差 谢谢你我不知道有哪一个库可以做到这一点,但是你可以简单地构建一些可以做到这一点的东西 示例geoJson: { "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry"
谢谢你我不知道有哪一个库可以做到这一点,但是你可以简单地构建一些可以做到这一点的东西 示例geoJson:
{ "type": "FeatureCollection",
"features": [
{ "type": "Feature",
"geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
"properties": {"prop0": "value0"}
},
{ "type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
]
},
"properties": {
"prop0": "value0",
"prop1": 0.0
}
},
{ "type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
[100.0, 1.0], [100.0, 0.0] ]
]
},
"properties": {
"prop0": "value0",
"prop1": {"this": "that"}
}
}
]
}
共多边形:
from sympy import Point, Polygon, pi
>>> p1, p2, p3, p4, p5 = [(0, 0), (1, 0), (5, 1), (0, 1), (3, 0)]
>>> Polygon(p1, p2, p3, p4)
Polygon(Point2D(0, 0), Point2D(1, 0), Point2D(5, 1), Point2D(0, 1))
如您所见,geoJson特性[2].geometry.coordinates数组几乎与sympy geometry格式(数组数组数组vs元组数组)完全相同。就线性时间而言,您可以通过geoJson循环获取坐标数组并将其设置为sympy值
复杂性将取决于您希望支持的几何体类型(点、线串、多边形等),因为您需要使用正确的Symphy语法来匹配它们,但总体而言,这将是微不足道的 我不知道有哪一个库可以做到这一点,但您可以构建一些相当简单的东西来做到这一点 示例geoJson:
{ "type": "FeatureCollection",
"features": [
{ "type": "Feature",
"geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
"properties": {"prop0": "value0"}
},
{ "type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
]
},
"properties": {
"prop0": "value0",
"prop1": 0.0
}
},
{ "type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
[100.0, 1.0], [100.0, 0.0] ]
]
},
"properties": {
"prop0": "value0",
"prop1": {"this": "that"}
}
}
]
}
共多边形:
from sympy import Point, Polygon, pi
>>> p1, p2, p3, p4, p5 = [(0, 0), (1, 0), (5, 1), (0, 1), (3, 0)]
>>> Polygon(p1, p2, p3, p4)
Polygon(Point2D(0, 0), Point2D(1, 0), Point2D(5, 1), Point2D(0, 1))
如您所见,geoJson特性[2].geometry.coordinates数组几乎与sympy geometry格式(数组数组数组vs元组数组)完全相同。就线性时间而言,您可以通过geoJson循环获取坐标数组并将其设置为sympy值
复杂性将取决于您希望支持的几何体类型(点、线串、多边形等),因为您需要使用正确的Symphy语法来匹配它们,但总体而言,这将是微不足道的 很好的例子!我认为最大的问题是如何处理“LineString”类型,因为Line和Segment只接受2个pts作为类。同意,Line string稍微复杂一些(不确定Symphy是否具有该类型)。但是你总是可以把p1画成p2,p2画成p3,p3画成p4…等等,嗯,也许另一个库对我来说会更好。你需要什么样的sympy功能?大多数计算可以直接从geoJson格式进行。很好的例子!我认为最大的问题是如何处理“LineString”类型,因为Line和Segment只接受2个pts作为类。同意,Line string稍微复杂一些(不确定Symphy是否具有该类型)。但是你总是可以把p1画成p2,p2画成p3,p3画成p4…等等,嗯,也许另一个库对我来说会更好。你需要什么样的sympy功能?大多数计算可以直接从geoJson格式进行。