forked from giscloud/GIS-Cloud-Examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmapsnlayers.html
More file actions
174 lines (124 loc) · 3.92 KB
/
mapsnlayers.html
File metadata and controls
174 lines (124 loc) · 3.92 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<!DOCTYPE html>
<html>
<title>getting map and layer data</title>
<link rel="stylesheet" type="text/css" href="examples.css"/>
<script type="text/javascript" src="http://api.giscloud.com/1/api.js"></script>
<script type="text/javascript" src="examples.js"></script>
<script type="text/javascript">
// expose jQuery
$ = giscloud.exposeJQuery();
var maps, layers;
/*
* getMapsData()
*
* Retrieves a list of maps from GIS Cloud.
*
*/
function getMapsData() {
// get public maps
giscloud.maps.list(function(mapdata) {
var i, k, map;
// mapdata contains an array of giscloud.Map objects
for (i = 0, k = mapdata.length; i < k; i++) {
map = mapdata[i];
// show map data on the page
showMapData(map.id, map.name);
}
});
}
/*
* getLayersData(mapId)
*
* Retrieves layers data from a map with id mapId.
*
*/
function getLayersData(mapId) {
// get layers data
giscloud.layers.byMapId(mapId, function(layerdata) {
var i, k, layer;
// layerdata contains an array of giscloud.Layer objects
for (i = 0, k = layerdata.length; i < k; i++) {
layer = layerdata[i];
// show map data on the page
showLayerData(mapId, layer.id, layer.name, layer.type);
}
});
}
/*
* showMapData(mapId, name)
*
* Adds an unordered list item with map id and name
*
*/
function showMapData(mapId, name) {
var li = $("<li/>", { id: "map_" + mapId });
li.append(name + " (id: " + mapId + ")<br/>");
li.append($("<a/>", {
href: "#",
click: function(evt) {
getLayersData(mapId);
evt.preventDefault();
}
}).append("Get layers"));
li.append("<ul/>");
li.appendTo("#list");
}
/*
* showLayerData(mapId, layerId, name, type)
*
* Adds a list item with layer id, name and type
*
*/
function showLayerData(mapId, layerId, name, type) {
// remove link
$("#map_" + mapId + " a").remove();
// add list item
var li = $("<li/>");
li.append(name + " (id: " + mapId + ", type: " + type + ")<br/>");
li.appendTo("#map_" + mapId + " ul");
}
giscloud.ready(function() {
getMapsData();
});
</script>
<body>
<h1>Getting map and layer data</h1>
<p>
This example shows how to retrieve public map data from GIS Cloud.
</p>
<p>
Once loaded, maps are displayed in the list below. You can see their names and ids. <br/>
Clicking on the <i>Get layers</i> links will retrieve layer data for each map.
</p>
<ul id="list"></ul>
<p>
The code:
</p>
<pre>
function getMapsData() {
// get public maps
giscloud.maps.list(function(mapdata) {
var i, k, map;
// mapdata contains an array of giscloud.Map objects
for (i = 0, k = mapdata.length; i < k; i++) {
map = mapdata[i];
// show map data on the page
showMapData(map.id, map.name);
}
});
}
function getLayersData(mapId) {
// get layers data
giscloud.layers.byMapId(mapId, function(layerdata) {
var i, k, layer;
// layerdata contains an array of giscloud.Layer objects
for (i = 0, k = mapdata.length; i < k; i++) {
layer = layerdata[i];
// show map data on the page
showLayersData(mapId, layer.id, layer.name);
}
});
}
</pre>
</body>
</html>