Beste tweakers,
Ik heb gebruik Google Maps om bepaalde locaties weer te geven op een kaart. Nu wil deze locaties kunnen filteren op bepaalde eigenschappen. Ik heb een aantal dingen geprobeerd maar ik kom er niet helemaal uit.
De data is opgeslagen in een Google Maps Spreadsheet. De data wordt dan d.m.v. JSON opgehaald en opgeslagen in een array.
Als ik het goed heb zijn de locaties en diens eigenschappen opgeslagen in de array cm_mapMarkers.
Nu wil ik dus de locaties(markers) filteren aan de hand van deze eigenschappen.
Het gaat om de locaties van schermen en diens eigenschappen. De schermen vallen bijvoorbeeld onder een categorie en hebben LED of LCD scherm etc. Ik wil dus filteren op categorieën maar bijvoorbeeld ook in combinatie met de andere eigenschappen.
Ik wil dynamisch doen met bijvoorbeeld checkboxes. Ik weet alleen niet hoe ik het precies moet aanpakken. Ik kom er niet uit. hebben jullie nog ideeën of tips?
Ik hoop dat het een beetje duidelijk is.
Demo van de huidige versie:
http://goo.gl/XaXyK
Alvast Bedankt,
Emrulez
Ik heb gebruik Google Maps om bepaalde locaties weer te geven op een kaart. Nu wil deze locaties kunnen filteren op bepaalde eigenschappen. Ik heb een aantal dingen geprobeerd maar ik kom er niet helemaal uit.
De data is opgeslagen in een Google Maps Spreadsheet. De data wordt dan d.m.v. JSON opgehaald en opgeslagen in een array.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| /** * Called when JSON is loaded. * @param {JSON} json Worksheet feed */ function cm_loadMapJSON(json) { var bounds = new google.maps.LatLngBounds(); for (var i = 0; i < json.feed.entry.length; i++) { var entry = json.feed.entry[i]; if(entry["gsx$" + param_latColumn]) { var lat = parseFloat(entry["gsx$" + param_latColumn].$t); var lng = parseFloat(entry["gsx$" + param_lngColumn].$t); var point = new google.maps.LatLng(lat,lng); var html = "<div class='infoscherm' style='font-size:12px'>"; html += "<h2>" + entry["gsx$"+param_titleColumn].$t + "</h2>"; var label = entry["gsx$"+param_titleColumn].$t; if(entry["gsx$" + param_screenCategory]) { html += "<h3>" + "Screen Category/Purpose: " + "</h3>" + "<p>" + entry["gsx$"+param_screenCategory].$t + "</p>"; } var screentype = entry["gsx$"+param_screenType].$t; if(entry["gsx$" + param_screenType]) { html += "<h3>" + "Screen Type: " + "</h3>" + "<p>" + entry["gsx$"+param_screenType].$t + "</p>"; } if(entry["gsx$" + param_publicSpace]) { html += "<h3>" + "Type of Public Space: " + "</h3>" + "<p>" + entry["gsx$"+param_publicSpace].$t + "</p>"; } var space = entry["gsx$"+param_publicSpace].$t; if(entry["gsx$" + param_screenInteraction]) { html += "<h3>" + "Type of interaction: " + "</h3>" + "<p>" + entry["gsx$"+param_screenInteraction].$t + "</p>"; } if(entry["gsx$" + param_descriptionColumn]) { html += "<h3>" + "Description: " + "</h3>" + "<p>" + entry["gsx$"+param_descriptionColumn].$t + "</p>"; } if(entry["gsx$" + param_screenAddress]) { html += "<h3>" + "Screen Location: " + "</h3>" + "<p>" + entry["gsx$"+param_screenAddress].$t + "</p>"; } html += "</div>"; // create the marker var marker = cm_createMarker(kaart,point,label,html,screentype,space); // cm_map.addOverlay(marker); cm_mapMarkers.push(marker); //cm_mapMarkers.push({ point: marker, space: 'Park' }); cm_mapHTMLS.push(html); bounds.extend(point); } } kaart.fitBounds(bounds); kaart.setCenter(bounds.getCenter()); } |
Als ik het goed heb zijn de locaties en diens eigenschappen opgeslagen in de array cm_mapMarkers.
Nu wil ik dus de locaties(markers) filteren aan de hand van deze eigenschappen.
Het gaat om de locaties van schermen en diens eigenschappen. De schermen vallen bijvoorbeeld onder een categorie en hebben LED of LCD scherm etc. Ik wil dus filteren op categorieën maar bijvoorbeeld ook in combinatie met de andere eigenschappen.
Ik wil dynamisch doen met bijvoorbeeld checkboxes. Ik weet alleen niet hoe ik het precies moet aanpakken. Ik kom er niet uit. hebben jullie nog ideeën of tips?
Ik hoop dat het een beetje duidelijk is.
Demo van de huidige versie:
http://goo.gl/XaXyK
Alvast Bedankt,
Emrulez