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-levelparameters are the properties of these components, allowing you to customize their appearance and behavior.
row-levelparameters 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.
How far the map can be zoomed in. Defaults to 18. Added in v0.15.2.
tile_source
Custom map tile images to use, as a URL. Defaults to "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png". Added in v0.15.2.
zoom
Zoom Level to apply to the map. Defaults to 5.
Row-level parameters
latitude
REQUIRED. Latitude of the marker. Required only if geojson is not set.
longitude
REQUIRED. Longitude of the marker. Required only if geojson is not set.
color
Background color of the marker on the map. Requires "icon" to be set.
description
Plain text description of the marker, to be displayed in a tooltip when the marker is clicked.
description_md
Description of the marker, in markdown, rendered in a tooltip when the marker is clicked.
geojson
A GeoJSON geometry (line, polygon, ...) to display on the map. Can be styled using geojson properties using the name of leaflet path options. Introduced in 0.15.1. Accepts raw strings in addition to JSON objects since 0.15.2.
icon
Name of the icon to use for the marker
link
A link to associate to the marker's title. If set, the marker tooltip's title will be clickable and will open the link.
size
Size of the marker icon. Requires "icon" to be set. Introduced in 0.15.2.
title
Title of the marker, displayed on hover and in the tooltip when the marker is clicked.
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;
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
Loading map...
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;