0

我有兴趣创建一个 gvNIX/Roo 应用程序,该应用程序在地图上显示坦桑尼亚卫生设施的位置。我正在尝试此处提供的教程。但是,我的数据采用如下所示的格式,其中我的位置数据位于两列(southingseastings)中。本教程展示了如何创建三种数据类型:

field geo --fieldName location --type POINT --class ~.domain.Owner
field geo --fieldName distance --type LINESTRING --class ~.domain.Owner
field geo --fieldName area --type POLYGON --class ~.domain.Owner

我假设我需要 POINT 数据类型来保存卫生设施位置的数据,但不确定如何将以下 2 列(南和东)放入单个 POINT 变量中。我对 GIS 也很陌生。数据如下(csv格式):

outlet_name,Status ,southings,eastings,streetward,name_of_outlet 
REHEMA MEDICS,02,2.49993,32.89512,K/POLISI,REVINA
KIRUMBA MEDICS,02,2.50023,32.89503,K/POLISI,GEDION
KIRUMBA PHARMACY,02,2.50152,32.89742,K/POLISI,MAURETH
TULI MEDICS,02,2.48737,32.89686,KITANGIRI,TULI
JULLY MEDICS,02,2.53275,32.93855,BUZURUGA,JULLY
MAGOMA MEDICS,02,2.53181,32.94211,BUZURUGA,MAGOMA
MECO PHARMACY,02,2.52923,32.94730,MECCO,DORCAS
UPENDO MEDICS,02,2.52923,32.94786,MECCO,UPENDO
DORIS MEDICS,02,2.49961,32.89191,KABUHORO,DORIS
SOPHIA MEDICS,02,2.49975,32.89120,KABUHORO,ESTER
MWALONI PHAMCY,02,2.56351,32.89416,MWALONI,ESTER
SILVER PHAMACY,02,2.51728,32.90614,K/KILOMERO,WANDWATA
KIBO PHARMACY,02,2.51688,32.90710,MISSION,MARIAM

谢谢

4

1 回答 1

2

您需要将坐标转换为WKT格式(众所周知的文本),以便将它们插入数据库(支持 postgis 的 postgresql 数据库)的列中。为了实现这一点,您需要执行以下步骤:

  • 查找坐标参考系统 (CRS) 的 SRID。也就是说,定义您的坐标系的标识符。否则,您的点将与实际坐标不匹配。在最后一步中您将需要 SRID。
  • 将您的数据转换为 WKT。插入点所需的数据位于 southings 和 eastings 列中(我想它们等于最常用的纬度和经度),因此您需要将这些列转换为具有 WKT 格式的单列。例如,对于您的第一行数据:Point(32.89512 2.49993). 注意它们之间的空格和数字之间的切换。
  • 继续使用 SQL 语法进行插入,但使用 postgis 函数。您的第一行的示例是:INSERT into health_facilities (outlet_name, Status, streetward, location) VALUES ('REHEMA MEDICS', 02, 'K/POLISI', ST_GeomFromText('Point(32.89512 2.49993)', 4326));. 其中“4326”是您必须找到的 SRID 的编号(假设它是最常见的 -> EPSG:4326)。

您可以在此处此处找到更多信息。还有几个页面,您可以在其中检查坐标并在不同的 CRS 之间转换它们,例如thisthis

于 2016-01-12T15:57:05.390 回答