使用 gvNIX 创建基于地图的应用程序
Using gvNIX to create Map Based Application
我有兴趣创建一个 gvNIX/Roo 应用程序,它可以在地图上显示坦桑尼亚医疗机构的位置。我正在尝试可用的教程 here。但是,我的数据采用如下所示的格式,其中我的位置数据分为两列(southings
和 eastings
)。本教程展示了如何创建三种数据类型:
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 列(southings 和 eastings)放入单个 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
谢谢
您需要将坐标转换为 WKT 格式(众所周知的文本),以便将它们插入到数据库(支持 postgis 的 postgresql 数据库)的列中。为此,您需要执行以下步骤:
- 找到您的坐标参考系统 (CRS) 的 SRID。也就是说,定义您的坐标系的标识符。否则,您的点将与实际坐标不匹配。您将需要在最后一步中使用 SRID。
- 将您的数据转换为 WKT。插入点所需的数据在 southings 和 eastings 列中(我想它们等于纬度和经度,这是最常用的),因此您需要将这些列转换为具有 WKT 格式的单个列。例如对于您的第一行数据:
Point(32.89512 2.49993)
。注意它们之间的 space 和数字之间的切换。
- 使用 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)。
您可以找到更多信息 here and here. Also there are several pages where you can check coordinates and transform them between diferent CRS, like this and this。
我有兴趣创建一个 gvNIX/Roo 应用程序,它可以在地图上显示坦桑尼亚医疗机构的位置。我正在尝试可用的教程 here。但是,我的数据采用如下所示的格式,其中我的位置数据分为两列(southings
和 eastings
)。本教程展示了如何创建三种数据类型:
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 列(southings 和 eastings)放入单个 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
谢谢
您需要将坐标转换为 WKT 格式(众所周知的文本),以便将它们插入到数据库(支持 postgis 的 postgresql 数据库)的列中。为此,您需要执行以下步骤:
- 找到您的坐标参考系统 (CRS) 的 SRID。也就是说,定义您的坐标系的标识符。否则,您的点将与实际坐标不匹配。您将需要在最后一步中使用 SRID。
- 将您的数据转换为 WKT。插入点所需的数据在 southings 和 eastings 列中(我想它们等于纬度和经度,这是最常用的),因此您需要将这些列转换为具有 WKT 格式的单个列。例如对于您的第一行数据:
Point(32.89512 2.49993)
。注意它们之间的 space 和数字之间的切换。 - 使用 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)。
您可以找到更多信息 here and here. Also there are several pages where you can check coordinates and transform them between diferent CRS, like this and this。