MySqlのGeometry、Point、Polygonなどの空間タイプでsqlsoupまたは他のpython MySQL Libraryを使用することは可能ですか? もしそうなら、誰かがそのpythonライブラリを使用してSELECTを実行し、ポリゴンからポイントを抽出する方法を示すことができますか?
質問する
1443 次
1 に答える
2
MySQL へのクエリと空間データの処理の両方を行う単一のパッケージは知りませんが、MySQL はwell -known-textおよびwell-known-binary空間データ形式をサポートしています (これにより、ポイント、ライン、ポリゴンなどを保存できます)。 )。
MySQLdbを使用して MySQL にクエリを実行し、SQL ステートメントでデータを取得する必要があります (例はこちら)。ポリゴンを構成するポイントだけが必要な場合は、簡単な文字列操作を行ってポイントの配列を作成できます。
input = "POLYGON ((30 10, 10 20, 20 40, 40 40, 30 10))"
def polygon_to_points(polygon):
geometry = polygon[10:-2]
coordinates = geometry.split(', ')
coord_pairs = []
for c in coordinates:
pair = c.split(' ')
pair_num = [float(pair[0]), float(pair[1])]
coord_pairs.append(pair_num)
return coord_pairs
[[30.0,10.0],[10.0,20.0],[20.0,40.0],[40.0,40.0],[30.0,10.0]]
これは意図したとおりに返されます。より複雑な空間クエリ/分析を行いたい場合は、Shapelyパッケージをご覧ください。
于 2013-04-18T14:00:48.777 に答える