1
1
const util = require ( './util' )
2
+ const iso6393 = require ( 'iso-639-3' )
3
+ const language = { }
4
+ iso6393 . filter ( i => ! ! i . iso6391 && ! ! i . iso6393 ) . forEach ( i => { language [ i . iso6391 ] = i . iso6393 } )
2
5
3
6
/**
4
7
* a verbose view of the PIP data
@@ -9,13 +12,15 @@ const util = require('./util')
9
12
module . exports = function ( req , res ) {
10
13
var service = req . app . locals . service
11
14
15
+ const lang = util . flatten ( req . query . lang )
12
16
// inputs
13
17
let query = {
14
18
lon : parseFloat ( util . flatten ( req . query . lon ) ) ,
15
19
lat : parseFloat ( util . flatten ( req . query . lat ) ) ,
16
20
limit : 1000 ,
17
21
aliaslimit : parseInt ( util . flatten ( req . query . aliaslimit ) , 10 ) || 0 ,
18
- wofonly : util . flatten ( req . query . wofonly ) ? 1 : 0
22
+ wofonly : util . flatten ( req . query . wofonly ) ? 1 : 0 ,
23
+ lang : language [ lang ] || lang || 'und'
19
24
}
20
25
21
26
// perform query
@@ -27,20 +32,21 @@ module.exports = function (req, res) {
27
32
let resp = { }
28
33
rows . forEach ( row => {
29
34
let centroid = row . centroid . split ( ',' ) . map ( util . floatPrecision7 )
35
+ let name = row . name_localized || row . name || undefined
30
36
31
37
let nameAlias = [ ]
32
38
if ( query . aliaslimit > 0 ) { nameAlias = ( row . names || '' ) . split ( String . fromCharCode ( 30 ) ) }
33
- nameAlias = ( nameAlias . length > 1 ) ? nameAlias . filter ( n => n !== row . name ) . slice ( 0 , query . aliaslimit ) : undefined
39
+ nameAlias = ( nameAlias . length > 1 ) ? nameAlias . filter ( n => n !== name ) . slice ( 0 , query . aliaslimit ) : undefined
34
40
35
41
let abbrAlias = [ ]
36
42
if ( query . aliaslimit > 0 ) { abbrAlias = ( row . abbrs || '' ) . split ( String . fromCharCode ( 30 ) ) }
37
- abbrAlias = ( abbrAlias . length > 1 ) ? abbrAlias . filter ( n => n !== row . name ) . slice ( 0 , query . aliaslimit ) : undefined
43
+ abbrAlias = ( abbrAlias . length > 1 ) ? abbrAlias . filter ( n => n !== name ) . slice ( 0 , query . aliaslimit ) : undefined
38
44
39
45
if ( ! Array . isArray ( resp [ row . type ] ) ) { resp [ row . type ] = [ ] }
40
46
resp [ row . type ] . push ( {
41
47
id : row . id ,
42
48
source : row . source ,
43
- name : row . name || undefined ,
49
+ name : name ,
44
50
name_alias : nameAlias ,
45
51
abbr : row . abbr || undefined ,
46
52
abbr_alias : abbrAlias ,
0 commit comments