angular-pdok-geocoder
Version:
AngularJS Geocoding PDOK Geocoder
57 lines (50 loc) • 1.74 kB
JavaScript
const Terraformer = require('terraformer');
Terraformer.WKT = require('terraformer-wkt-parser');
class GeocodeService {
constructor($http) {
this.$http = $http;
this.suggestUrl = 'https://geodata.nationaalgeoregister.nl/locatieserver/v3/suggest?';
this.lookupUrl = 'https://geodata.nationaalgeoregister.nl/locatieserver/v3/lookup?';
this.freeUrl = 'https://geodata.nationaalgeoregister.nl/locatieserver/v3/free?';
return this;
}
suggest(params) {
return this.$http
.get(this.suggestUrl, {params:params})
.then(function(response) {
return response.data;
})
}
lookup(params) {
return this.$http
.get(this.lookupUrl, {params:params})
.then(function(result) {
var responseGeomFields = [
'centroide_ll',
'centroide_rd',
'geometrie_ll',
'geometrie_rd'
]
var result = result.data
//Replace all WKT geom with geojson geom
for (let r in result.response.docs) {
for (let responseGeom in responseGeomFields) {
result.response.docs[r][responseGeomFields[responseGeom]] = Terraformer.WKT.parse(result.response.docs[r][responseGeomFields[responseGeom]])
}
}
//Only ever get the first result found, as search is done based on ID
let feature = result.response.docs[0]
feature.type = 'Feature'
feature.geometry = feature.geometrie_ll
return feature;
})
}
free(params) {
return this.$http
.get(freeUrl, {params:params})
.then(function(response) {
return response.data;
})
}
}
export default GeocodeService;