Django 区域数据 MultiPolygonField
Django region data MultiPolygonField
原谅我这方面的无知。我正在使用 Geo Django 的内置 MultiPolygonField
来存储区域数据。该字段存储在数据库中的数据如下所示...
0106000020E6100000010000000103000000010000000700000000000000003C1EC023000000E690504000000000000D414023000000E63353400000000000344740460000004CD34C400000000080314240460000004C60474000000000003A21408D00000098EE3E400000000000BE34C08D00000098483F4000000000003C1EC023000000E6905040
我想在此处使用区域数据:http://download.geofabrik.de/europe.html# 但将数据保存为描述该区域范围的 .poly
文件。
我的问题是,如何转换 .poly
数据 here 以匹配 MultiPolygonField 在数据库中的描述?
您显示的数据库中的值是几何图形的 Well Known Binary (WKB) 格式。如果您使用的是 PostGIS,则可以查看 Well Known Text (WKT) 格式的相同几何图形,这种格式更易于阅读。这是一个显示您发布为 WKT 的 WKB 几何的查询:
SELECT ST_AsEWKT('0106000020E6100000010000000103000000010000000700000000000000003C1EC023000000E690504000000000000D414023000000E63353400000000000344740460000004CD34C400000000080314240460000004C60474000000000003A21408D00000098EE3E400000000000BE34C08D00000098483F4000000000003C1EC023000000E6905040'::geometry)
要在 GeoDjango 中存储几何图形,您需要使用它接受的输入格式之一,请参阅 GEOSGeometry and OGRGeometry 的 Django 文档。
因此您需要编写一个解析器来将 .poly 文件中的坐标转换为 Django 已知的格式(例如 WKT 或 geojson)。
这里是一个关于如何使用您链接的 .poly 数据的前几个坐标构造多边形的示例。请注意,最后一个坐标需要与第一个坐标相同才能闭合多边形。
poly = GEOSGeometry('MULTIPOLYGON(((-5.86333200 8.14347501, -6.70445600 7.47862301, -3.44929601 6.28074401, -3.08375301 3.08165901, -1.71378401 3.10939901, -5.86333200 8.14347501)))')
要存储几何图形,您可以将 WKT 数据直接作为输入传递给您的 MultiPolygonField,或者您可以像示例中那样构造 poly
几何对象,并将其传递给您的字段。
原谅我这方面的无知。我正在使用 Geo Django 的内置 MultiPolygonField
来存储区域数据。该字段存储在数据库中的数据如下所示...
0106000020E6100000010000000103000000010000000700000000000000003C1EC023000000E690504000000000000D414023000000E63353400000000000344740460000004CD34C400000000080314240460000004C60474000000000003A21408D00000098EE3E400000000000BE34C08D00000098483F4000000000003C1EC023000000E6905040
我想在此处使用区域数据:http://download.geofabrik.de/europe.html# 但将数据保存为描述该区域范围的 .poly
文件。
我的问题是,如何转换 .poly
数据 here 以匹配 MultiPolygonField 在数据库中的描述?
您显示的数据库中的值是几何图形的 Well Known Binary (WKB) 格式。如果您使用的是 PostGIS,则可以查看 Well Known Text (WKT) 格式的相同几何图形,这种格式更易于阅读。这是一个显示您发布为 WKT 的 WKB 几何的查询:
SELECT ST_AsEWKT('0106000020E6100000010000000103000000010000000700000000000000003C1EC023000000E690504000000000000D414023000000E63353400000000000344740460000004CD34C400000000080314240460000004C60474000000000003A21408D00000098EE3E400000000000BE34C08D00000098483F4000000000003C1EC023000000E6905040'::geometry)
要在 GeoDjango 中存储几何图形,您需要使用它接受的输入格式之一,请参阅 GEOSGeometry and OGRGeometry 的 Django 文档。
因此您需要编写一个解析器来将 .poly 文件中的坐标转换为 Django 已知的格式(例如 WKT 或 geojson)。
这里是一个关于如何使用您链接的 .poly 数据的前几个坐标构造多边形的示例。请注意,最后一个坐标需要与第一个坐标相同才能闭合多边形。
poly = GEOSGeometry('MULTIPOLYGON(((-5.86333200 8.14347501, -6.70445600 7.47862301, -3.44929601 6.28074401, -3.08375301 3.08165901, -1.71378401 3.10939901, -5.86333200 8.14347501)))')
要存储几何图形,您可以将 WKT 数据直接作为输入传递给您的 MultiPolygonField,或者您可以像示例中那样构造 poly
几何对象,并将其传递给您的字段。