Tengo una base de datos SQLite simple que contiene coordenadas X, Y en una tabla. Los datos se editan a través de un front-end de MS Access utilizando el controlador ODBC, por lo que quiero evitar almacenarlos en un blob de geometría que sólo se puede editar utilizando Spatialite.
Sé que QGIS puede trazar tablas de archivos .csv especificando una columna X e Y y que Arc puede hacer algo similar con tablas SQLite simples.
¿Cómo puedo crear una vista que convierta mis columnas X, Y en objetos de geometría Spatialite para que los datos resultantes puedan visualizarse en un mapa en QGIS?
Ejemplo de estructura de tabla
-- Location table (non-spatial)
CREATE TABLE location (
id INTEGER PRIMARY KEY,
name TEXT,
x INT,
y INT,
epsg_code INT
);
INSERT INTO location VALUES
(1, 'North', -3, 55, 4326),
(2, 'South', 0, 52, 4326);
-- Sample data to be plotted on map
CREATE TABLE sample (
sample_id INTEGER PRIMARY KEY,
description TEXT,
location INT
);
INSERT INTO sample VALUES
(1, 'big', 1),
(2, 'bigger', 2),
(3, 'biggest', 2);
Vista de ejemplo
Me gustaría crear una vista que me permita trazar los siguientes atributos en un mapa:
SELECT
s.sample_id,
s.description,
loc.name
FROM
sample AS s LEFT JOIN location as loc
ON s.location = loc.id;
Preguntas similares
Publico esta pregunta para responderla yo mismo. Encontré partes de la respuesta en las siguientes preguntas, pero quería que estuviera documentada en un solo lugar.