|
var map; |
|
var markers = []; |
|
var infowindow; |
|
|
|
function retrieveData() { |
|
var query = "PREFIX : <http://dbpedia.org/resource/> PREFIX dbp: <http://dbpedia.org/ontology/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX dbpprop: <http://dbpedia.org/property/> SELECT ?event ?date ?place ?lat_lng WHERE { ?event rdf:type dbp:Event . OPTIONAL { ?event dbp:place ?place . ?place grs:point ?lat_lng } OPTIONAL { ?event dbp:date ?date .} FILTER ( ?date >= '1538-03-25'^^xsd:date && ?date < '1612-02-06'^^xsd:date )} GROUP BY ?event ?date ?place"; |
|
|
|
var url = 'http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=' + encodeURIComponent(query) + '&output=json'; |
|
|
|
console.log(url); |
|
|
|
$.ajax({ |
|
url: url, |
|
dataType: "json", |
|
success: function (data) { |
|
$('#raw_output').text(JSON.stringify(data, null, 3)); |
|
|
|
deleteMarkers(); |
|
show_events(data["results"]["bindings"]); |
|
}, |
|
error: function(e) {} |
|
}); |
|
} |
|
|
|
function init() { |
|
var mapOptions = { |
|
center: new google.maps.LatLng(0.0, 0.0), |
|
minZoom: 2, |
|
zoom: 2, |
|
mapTypeId: google.maps.MapTypeId.ROADMAP |
|
}; |
|
|
|
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); |
|
infowindow = new google.maps.InfoWindow(); |
|
} |
|
|
|
function show_events(data) { |
|
infowindow = new google.maps.InfoWindow(); |
|
|
|
for (i = 0; i < data.length; i++) { |
|
if (data[i]["lat_lng"] != null) { |
|
var lat_lng = data[i]["lat_lng"]["value"]; |
|
var array = lat_lng.split(" "); |
|
|
|
var title = data[i]["event"]["value"].split("/"); |
|
title = title[4].replace(/_/g, ""); |
|
|
|
var latlng = new google.maps.LatLng(array[0], array[1]); |
|
var content = data[i]["event"]["value"].split("/")[4].replace(/_/g, " "); |
|
|
|
var marker = new google.maps.Marker({ |
|
position: latlng, |
|
map: map, |
|
content: content |
|
}) |
|
|
|
markers.push(marker); |
|
|
|
google.maps.event.addListener(marker, 'click', function() { |
|
infowindow.open(map, this); |
|
infowindow.setContent(this.content); |
|
}); |
|
} |
|
} |
|
} |
|
|
|
function deleteMarkers() { |
|
setAllMap(null); |
|
markers = []; |
|
} |
|
function setAllMap(map) { |
|
for (var i = 0; i < markers.length; i++) { |
|
markers[i].setMap(map); |
|
} |
|
} |