@@ -4,91 +4,91 @@ import { query } from './query';
4
4
import { config } from './config' ;
5
5
6
6
export function getChangeset ( changesetID , overpassBase = config . overpassBase ) {
7
- return query ( changesetID ) . then ( changeset => {
8
- var url = config . S3_URL + changesetID + '.json' ;
9
- return fetch ( url )
7
+ return query ( changesetID ) . then ( changeset => {
8
+ var url = config . S3_URL + changesetID + '.json' ;
9
+ return fetch ( url )
10
10
. then ( r => {
11
- if ( r . ok ) return r . json ( ) ;
11
+ if ( r . ok ) return r . json ( ) ;
12
12
// Fallback to overpass
13
- return Promise . reject ( ) ;
13
+ return Promise . reject ( ) ;
14
14
} )
15
15
. then ( r => {
16
- var geojson = jsonParser ( r ) ;
17
- var featureMap = getFeatureMap ( geojson ) ;
18
- var ret = {
19
- geojson : geojson ,
20
- featureMap : featureMap ,
21
- changeset : changeset
22
- } ;
23
- return ret ;
16
+ var geojson = jsonParser ( r ) ;
17
+ var featureMap = getFeatureMap ( geojson ) ;
18
+ var ret = {
19
+ geojson : geojson ,
20
+ featureMap : featureMap ,
21
+ changeset : changeset
22
+ } ;
23
+ return ret ;
24
24
} )
25
25
. catch ( ( ) => fetchFromOverPass ( changesetID , changeset , overpassBase ) ) ;
26
- } ) ;
26
+ } ) ;
27
27
}
28
28
29
29
function fetchFromOverPass ( changesetID , changeset , overpassBase ) {
30
- var data = getDataParam ( changeset ) ;
31
- var bbox = getBboxParam ( changeset . bbox ) ;
32
- var url = overpassBase + '?data=' + data + '&bbox=' + bbox ;
30
+ var data = getDataParam ( changeset ) ;
31
+ var bbox = getBboxParam ( changeset . bbox ) ;
32
+ var url = overpassBase + '?data=' + data + '&bbox=' + bbox ;
33
33
34
- return fetch ( url , {
35
- 'Response-Type' : 'application/osm3s+xml'
36
- } )
34
+ return fetch ( url , {
35
+ 'Response-Type' : 'application/osm3s+xml'
36
+ } )
37
37
. then ( r => r . text ( ) )
38
38
. then ( response => {
39
- return new Promise ( ( res , rej ) => {
40
- adiffParser ( response , null , ( err , json ) => {
41
- if ( err ) {
42
- return rej ( {
43
- msg : 'Failed to parser adiff xml.' ,
44
- error : err
45
- } ) ;
46
- }
47
- var geojson = jsonParser ( {
48
- elements : json [ changesetID ]
49
- } ) ;
50
- var featureMap = getFeatureMap ( geojson ) ;
51
-
52
- var ret = {
53
- geojson : geojson ,
54
- featureMap : featureMap ,
55
- changeset : changeset
56
- } ;
57
- return res ( ret ) ;
39
+ return new Promise ( ( res , rej ) => {
40
+ adiffParser ( response , null , ( err , json ) => {
41
+ if ( err ) {
42
+ return rej ( {
43
+ msg : 'Failed to parser adiff xml.' ,
44
+ error : err
58
45
} ) ;
46
+ }
47
+ var geojson = jsonParser ( {
48
+ elements : json [ changesetID ]
49
+ } ) ;
50
+ var featureMap = getFeatureMap ( geojson ) ;
51
+
52
+ var ret = {
53
+ geojson : geojson ,
54
+ featureMap : featureMap ,
55
+ changeset : changeset
56
+ } ;
57
+ return res ( ret ) ;
59
58
} ) ;
59
+ } ) ;
60
60
} )
61
61
. catch ( err =>
62
62
Promise . reject ( {
63
- msg : 'Overpass query failed.' ,
64
- error : err
63
+ msg : 'Overpass query failed.' ,
64
+ error : err
65
65
} )
66
66
) ;
67
67
}
68
68
69
69
function getDataParam ( c ) {
70
- return (
70
+ return (
71
71
'[out:xml][adiff:%22' +
72
72
c . from . toString ( ) +
73
73
',%22,%22' +
74
74
c . to . toString ( ) +
75
75
'%22];(node(bbox)(changed);way(bbox)(changed);relation(bbox)(changed));out%20meta%20geom(bbox);'
76
- ) ;
76
+ ) ;
77
77
}
78
78
79
79
function getBboxParam ( bbox ) {
80
- return [ bbox . left , bbox . bottom , bbox . right , bbox . top ] . join ( ',' ) ;
80
+ return [ bbox . left , bbox . bottom , bbox . right , bbox . top ] . join ( ',' ) ;
81
81
}
82
82
83
83
function getFeatureMap ( geojson ) {
84
- var features = geojson . features ;
85
- var featureMap = { } ;
84
+ var features = geojson . features ;
85
+ var featureMap = { } ;
86
86
87
- for ( var i = 0 , len = features . length ; i < len ; i ++ ) {
88
- var id = features [ i ] . properties . id ;
89
- featureMap [ id ] = featureMap [ id ] || [ ] ;
90
- featureMap [ id ] . push ( features [ i ] ) ;
91
- }
87
+ for ( var i = 0 , len = features . length ; i < len ; i ++ ) {
88
+ var id = features [ i ] . properties . id ;
89
+ featureMap [ id ] = featureMap [ id ] || [ ] ;
90
+ featureMap [ id ] . push ( features [ i ] ) ;
91
+ }
92
92
93
- return featureMap ;
93
+ return featureMap ;
94
94
}
0 commit comments