root / ajax / ref_points.php @ af81ae55
1 |
<?php
|
---|---|
2 |
|
3 |
|
4 |
/**
|
5 |
* An example CORS-compliant method. It will allow any GET, POST, or OPTIONS requests from any
|
6 |
* origin.
|
7 |
*
|
8 |
* In a production environment, you probably want to be more restrictive, but this gives you
|
9 |
* the general idea of what is involved. For the nitty-gritty low-down, read:
|
10 |
*
|
11 |
* - https://developer.mozilla.org/en/HTTP_access_control
|
12 |
* - http://www.w3.org/TR/cors/
|
13 |
*
|
14 |
*/
|
15 |
function cors() { |
16 |
// Allow from any origin
|
17 |
if (isset($_SERVER['HTTP_ORIGIN'])) { |
18 |
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); |
19 |
header('Access-Control-Allow-Credentials: true'); |
20 |
header('Access-Control-Max-Age: 86400'); // cache for 1 day |
21 |
} |
22 |
|
23 |
// Access-Control headers are received during OPTIONS requests
|
24 |
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { |
25 |
|
26 |
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) |
27 |
header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); |
28 |
|
29 |
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) |
30 |
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); |
31 |
|
32 |
exit(0); |
33 |
} |
34 |
} |
35 |
|
36 |
cors(); |
37 |
|
38 |
function ref_point_to_geoJSONFeature($name, $values) { |
39 |
return array("type" => "Feature", |
40 |
"geometry" => array( |
41 |
"type" => "Point", |
42 |
"coordinates" => [$values[1],$values[0]] |
43 |
), |
44 |
"properties" => array("name" => $name) |
45 |
); |
46 |
} |
47 |
|
48 |
function get_ref_points() { |
49 |
$ref_points_filename = '../ref_points.local.php'; |
50 |
if (file_exists($ref_points_filename)) { |
51 |
include $ref_points_filename; |
52 |
return $ref_points; |
53 |
} else {
|
54 |
return array(); |
55 |
} |
56 |
} |
57 |
|
58 |
$json = array( |
59 |
"type" => "FeatureCollection", |
60 |
"features"=> array() |
61 |
); |
62 |
|
63 |
foreach (get_ref_points() as $name => $vals) { |
64 |
$json['features'][] = ref_point_to_geoJSONFeature($name, $vals); |
65 |
} |
66 |
|
67 |
echo json_encode($json); |
68 |
|
69 |
?>
|