SQLPage v0.20.4 documentation
If you are completely new to SQLPage, you should start by reading the get started tutorial, which will guide you through the process of creating your first SQLPage application.
Building an application with SQLPage is quite simple. To create a new web page, just create a new SQL file. For each SELECT statement that you write, the data it returns will be analyzed and rendered to the user. The two most important concepts in SQLPage are components and parameters.
- components are small user interface elements that you can use to display your data in a certain way.
- top-level parameters are the properties of these components, allowing you to customize their appearance and behavior.
- row-level parameters constitute the data that you want to display in the components.
To select a component and set its top-level properties, you write the following SQL statement:
SELECT 'component_name' AS component, 'my value' AS top_level_parameter_1;
Then, you can set its row-level parameters by writing a second SELECT statement:
SELECT my_column_1 AS row_level_parameter_1, my_column_2 AS row_level_parameter_2 FROM my_table;
This page documents all the components provided by default in SQLPage and their parameters. Use this as a reference when building your SQL application. If at any point you need help, you can ask for it on the SQLPage forum.
If you know some HTML, you can also easily create your own components for your application.
components
The "map" component
Displays a map with markers on it. Useful in combination with PostgreSQL's PostGIS or SQLite's spatialite.
Introduced in SQLPage v0.8.0.
Top-level parameters
attribution
class
id
latitude
longitude
max_zoom
tile_source
zoom
Row-level parameters
latitude
longitude
color
description
description_md
geojson
icon
link
size
title
Example 1
Basic example of a map with a marker
select
'map' as component,
1 as zoom;
select
'New Delhi' as title,
28.6139 as latitude,
77.209 as longitude;
Result
New Delhi
Example 2
Basic marker defined in GeoJSON. Using leaflet marker options as GeoJSON properties.
select
'map' as component,
5 as zoom,
8 as max_zoom,
600 as height,
-25 as latitude,
28 as longitude,
'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png' as tile_source,
'' as attribution;
select
'peace' as icon,
20 as size,
'https://en.wikipedia.org/wiki/Nelson_Mandela' as link,
'{"type":"Feature", "properties": { "title":"Mvezo, Birth Place of Nelson Mandela" }, "geometry": { "type":"Point", "coordinates": [28.49, -31.96] }}' as geojson;
Result
Example 3
Map of Paris.
Illustrates the use custom styling, and GeoJSON to display a line between two points.
In a real-world scenario, the GeoJSON could be generated by calling PostGIS's
ST_AsGeoJSON
or
Spatialite's AsGeoJSON
functions on a geometry column.
select
'map' as component,
'Paris' as title,
11 as zoom,
48.85 as latitude,
2.34 as longitude;
select
'Notre Dame' as title,
'building-castle' as icon,
'indigo' as color,
48.853 as latitude,
2.3498 as longitude,
'A beautiful cathedral.' as description_md,
'https://en.wikipedia.org/wiki/Notre-Dame_de_Paris' as link;
select
'Eiffel Tower' as title,
'tower' as icon,
'yellow' as color,
48.8584 as latitude,
2.2945 as longitude,
'A tall tower. [Wikipedia](https://en.wikipedia.org/wiki/Eiffel_Tower)' as description_md;
select
'Tower to Cathedral' as title,
JSON('{"type":"LineString","coordinates":[[2.2945,48.8584],[2.3498,48.8530]]}') as geojson,
'teal' as color,
'A nice 45 minutes walk.' as description;
Result
Paris
Notre Dame
A beautiful cathedral.
Eiffel Tower
A tall tower. Wikipedia
Tower to Cathedral
A nice 45 minutes walk.