-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathv1_relations.php
More file actions
74 lines (64 loc) · 1.94 KB
/
v1_relations.php
File metadata and controls
74 lines (64 loc) · 1.94 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
<?php
// récupération depuis osm.org et mise en cache des
// XMLs de la version 1 de chaque relation administrative
// appui sur une liste des IDs de relations stockée dans une base PG
// source pour cette liste : tmp_admin_rel.csv
// connexion PG
// positionne une variable 'pgc' en retour de la fonction PHP pg_connect()
include 'connexion.php';
include 'fonctions.php';
$paquet = 2000;
$a_relation_id = getCommunesSet($paquet);
$paquet = count($a_relation_id);
$root_saved_files = 'c:\\gps\\animfla\\xml_v1\\';
$compteur = 0;
foreach ($a_relation_id as $r){
$save_dir = $root_saved_files.substr($r['osm_id'],-2).'\\';
if (!is_dir($save_dir)) mkdir($save_dir);
$old_save_file = $root_saved_files.$r['osm_id'].'.xml';
$save_file = $save_dir.$r['osm_id'].'.xml';
print_r($r['osm_id']."\n");
if (!file_exists($save_file)){
$url = 'http://www.openstreetmap.org/api/0.6/relation/'.$r['osm_id'].'/1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
curl_close($ch);
sleep (1);
$handle = fopen($save_file,'w');
fwrite($handle,$res);
fclose($handle);
} else {
$res = file_get_contents($save_file);
}
if (strlen($res) > 0){
$x = new SimpleXMLElement($res);
$user = (string) $x->relation[0]['user'];
$uid = (string) $x->relation[0]['uid'];
$timestamp = (string) $x->relation[0]['timestamp'];
$changeset = (string) $x->relation[0]['changeset'];
} else {
$user = '#redacted#';
$uid = -1;
$timestamp = -1;
$changeset = -1;
}
$str_query = "INSERT INTO admin_8_v1 VALUES(".$r['osm_id']
.",'"
.$timestamp
."',"
.$uid
.",'"
.pg_escape_string($user)
."',"
.$changeset
.",'"
.$r['ref_insee']
."');";
print_r('.');
$rq = pg_query($GLOBALS['pgc'],$str_query);
$compteur += 1;
print_r($compteur .'/'.$paquet."\n");
}
?>