Skip to content
GeraldGrootRoessink edited this page Sep 26, 2021 · 6 revisions

You use a GeoAppearance if you want to show some geographical data on a map. Two maps are includes:

  • The Openstreet map;
  • The Official topographical map of the Netherlands.

To place a simple marker on the map, your data should contain a geo:long and a geo:lat property value. If you add more than one marker on the map and you want to centre the map arount a particular marker, you can state that this marker is of rdf:type elmo:GeoLocator.

To place one or more geometrical shapes on the map, your data should contain one or more geo:geometry values.

In both cases, the URI of the subject will be used to create a hyperlink to that particular URI. If you want to override this hyperlink, you should add a xhtml:link property as well. If you want to add a pop-up with a label, you should add a rdfs:label property.

Geo appearance

Tweaking the appearance

The appearance of each row can be changed with the elmo:fragment statement:

  • (mandatory): elmo:applies-to states the predicate to which the fragment applies.
  • elmo:backmap states which map to use ('brt' means the Dutch topographical map, if you ommit such a statement, the Openstreet map is used). You should use this statement in combination with a elmo:applies-to elmo:Appearance statement.
  • xhtml:stylesheet states the particular css stylesheet to be used for a particular shape style. Your query result should include an elmo:style property that refers to the particular style fragment.

Example

The first example just places a pointer on a OpenStreet map. In this case, the rdf:type elmo:GeoLocator statement is not really necessary, because only one marker is visible.

stage:GeoAppearancePointer a elmo:Part;
	elmo:appearance elmo:GeoAppearance;
	elmo:query '''
		prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
		construct {
			<urn:pointer> rdf:type elmo:GeoLocator.
			<urn:pointer> geo:lat "52.155".
			<urn:pointer> geo:long "5.38".
			<urn:pointer> rdfs:label "Here!".
		}
		WHERE {}
	''';
.

The second example shows the city of Amersfoort in the color red, using the Dutch Topographical map.

     @prefix elmo: <http://bp4mc2.org/elmo/def#>.
     @prefix xhtml: <http://www.w3.org/1999/xhtml/vocab#>.
     @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
     @prefix stage: <http://localhost:8080/stage#>. 
     stage:GeoAppearance3 a elmo:Representation;
     	elmo:url-pattern "query/geo3$";
        elmo:appearance elmo:GeoAppearance;
        elmo:fragment [
	     elmo:applies-to "city";
	     xhtml:stylesheet '''
		fill: red;
		fill-opacity: .3;
		stroke: #666;
	     ''';
    	];
	        elmo:query '''
	   prefix geosparql: <http://www.opengis.net/ont/geosparql#>
	   prefix brt: <http://brt.basisregistraties.overheid.nl/def/top10nl#>
 	   prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
	   prefix elmo: <http://bp4mc2.org/elmo/def#>
	   construct {
           ?owis rdf:type elmo:GeoLocator.
		?city geo:geometry ?wkt.
		?city rdfs:label ?cityname.
	   }
	   WHERE {
		select *
		where {
			?city rdfs:label ?cityname.
			?city geosparql:hasGeometry ?geo.
			?geo geosparql:asWKT ?wkt.
			FILTER (?city = <http://bag.basisregistraties.overheid.nl/bag/id/woonplaats/1664>)
		}
		limit 1
	    }
    	''';
    .
Clone this wiki locally