UNPKG

angular-pdok-geocoder

Version:

AngularJS Geocoding PDOK Geocoder

57 lines (50 loc) 1.74 kB
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;