-
Notifications
You must be signed in to change notification settings - Fork 0
/
leaflet13-apigeojson.php
86 lines (74 loc) · 2.1 KB
/
leaflet13-apigeojson.php
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
<?php
// Define a list of points
$data = array (
array (
'id' => 80,
'caption' => 'Cycle parking',
'categoryId' => 'cycleparking',
'iconUrl' => "https://www.cyclestreets.net/images/categories/iconsets/cyclestreets/svg/cycleparking_good.svg",
'username' => 'martin',
'latitude' => 52.20173,
'longitude' => 0.12111,
),
array (
'id' => 2772,
'caption' => 'Nice bike',
'categoryId' => 'general',
'iconUrl' => "https://www.cyclestreets.net/images/categories/iconsets/cyclestreets/svg/general_neutral.svg",
'username' => 'simon',
'latitude' => 52.20203,
'longitude' => 0.12466,
),
array (
'id' => 2818,
'caption' => 'This cycle parking needs to be improved',
'categoryId' => 'cycleparking',
'iconUrl' => "https://www.cyclestreets.net/images/categories/iconsets/cyclestreets/svg/cycleparking_bad.svg",
'username' => 'martin',
'latitude' => 52.20055,
'longitude' => 0.12136,
),
);
/*
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": [
0.12484,
52.202
]
}
},
{
"type": "Feature",
*/
// Assemble the features
$features = array ();
foreach ($data as $record) {
$features[] = array (
"type" => "Point",
"properties" => array (
'id' => $record['id'],
'caption' => $record['caption'],
'categoryId' => $record['categoryId'],
'categoryName' => $record['categoryId'],
'iconUrl' => $record['iconUrl'],
'username' => $record['username'],
),
"coordinates" => array ($record['longitude'], $record['latitude']),
);
}
// Assemble the GeoJSON
$geojson = array (
"type" => "FeatureCollection",
"features" => $features,
);
// Serve as GeoJSON
header('Content-Type: application/json');
echo json_encode ($geojson, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
?>