Project

General

Profile

Paste
Download (1.95 KB) Statistics
| Branch: | Revision:

root / ajax / ref_points.php @ 5c5b7504

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
?>