Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
@kalisio/geokoder
Advanced tools
Kalisio geocoder service
geokoder is a service that let you perform forward and reverse geocoding in various sources exposed by a provider. The following providers are currently supported:
Kano
to expose Kano catalog layers as sources,NodeGeocoder
to expose node-geocoder providers as sources,MBTiles
to expose layers from MBTiles as sources.Checks for the health of the service, returns a json object with the name of the service (geokoder) and it's version number.
Returns the list of available geocoding sources according to the target operation, as an array. Available operations are:
forward
for forward geocodingreverse
for reverse geocodingPerforms forward geocoding. Requires at least the q
parameter which is the string that'll be searched in the geocoding sources.
The query supports an optional sources
allowing users to only perform geocoding in matching sources. The source matching is based on minimatch.
The query returns the list of matching features, as an array. Each feature is given a relevance score, and the returned array is sorted based on this value. The service also add to each feature and additional geokoder
object containing the following fields:
source
specifies in which source this feature was foundmatch
indicates which string value was used to compute relevance scorematchProp
indicates which feature property was used to to compute relevance scorescore
is the computed relevance scorePerforms reverse geocoding at the given point. Requires at least the lat
and lon
parameters which is the location that'll be searched in the geocoding sources. The query supports an optional sources
allowing users to only perform reverse geocoding in matching sources. The source matching is based on minimatch. Some providers could support additional parameters:
limit
the number of maximum items to get in the responsedistance
the maximum distance of items to be included in the response (useful for nearby location query not much for point in polygon query)The query returns the list of matching features, as an array. The service also add to each feature and additional geokoder
object containing the following fields:
source
specifies in which source this feature was foundBy default, geokoder does not expose any sources. You are responsible to write a local.cjs
file to declare the different sources you want to expose.
Here is an example file that exposes all the sources from the Kano provider, opendatafrance
from the NodeGeocoder provider and api-geo
dataset sources from the MBTiles provider:
module.exports = {
providers: {
Kano: {},
NodeGeocoder: {
opendatafrance: true
},
MBTiles: {
'api-geo': { filepath: '/mnt/data/api-geo-5m.mbtiles', layers: ['communes5m', 'epci5m', 'departements5m', 'regions5m'] }
}
}
}
For now, each layer in the catalog exposing the featureLabel
property will be taken into account. This property can be a single string value or an array of strings to target multiple fields.
Each key is a geocoder to instanciate in node-geocoder. If value is false-ish, it won't be instanciated. If you'd like to pass additional options to the geocoder instance then it could be an object containing the options.
NodeGeocoder: {
opendatafrance: true,
openstreetmap: false
}
Each key will be a new dataset based on the provided file and exposing some layers as sources such as:
admin-express': { filepath: path.join(__dirname, '../data/mbtiles/admin-express.mbtiles'), layers: ['commune', 'departement']
.
NOTE
For performance reason each layer in a dataset should have the same max zoom level, if not two different datasets should be created for now.
geokoder allows you to declare i18n files which can be used to name the different exposed sources in an understandable way. This description is returned within an i18n
object when requestring the capabilities.
An i18n file consists in a javascript file strucuted as below:
module.exports = {
i18n: {
fr: {
Geocoders: {
'kano:hubeau-hydro-stations': 'Hub\'Eau Hydrométrie',
'kano:hubeau-piezo-stations': 'Hub\'Eau Piezométrie',
'kano:icos-stations': 'Réseau ICOS',
'opendatafrance': 'BAN'
// ...
}
},
en: {
Geocoders: {
'kano:hubeau-hydro-stations': 'Hub\'Eau Hydrometry',
'kano:hubeau-piezo-stations': 'Hub\'Eau Piezometry',
'kano:icos-stations': 'ICOS Network',
'opendatafrance': 'BAN'
// ...
}
}
}
}
Here are the environment variables you can use to customize the service:
Variable | Description | Defaults |
---|---|---|
PORT | The port to be used when exposing the service | 8080 |
HOSTNAME | The hostname to be used when exposing the service | localhost |
BASE_URL | The url used when exposing the service | localhost:8080 |
API_PATH | The path to the API |
Note
Most of these variables are defined for convenience in order to run the tests.
You can build the image with the following command:
docker build -t <your-image-name> .
You can build a sample MBTiles with sources from French API Géo for testing purpose using the provided script after you installed tippecanoe.
This project is configured to use Travis to build and push the image on the Kalisio's Docker Hub.
The built image is tagged using the version
property in the package.json
file.
To enable Travis to do the job, you must define the following variable in the corresponding Travis project:
Variable | Description |
---|---|
DOCKER_USER | your username |
DOCKER_PASSWORD | your password |
This image is designed to be deployed using the Kargo project.
To run the tests, use the subcommand test
:
yarn test
Please read the Contributing file for details on our code of conduct, and the process for submitting pull requests to us.
This project is licensed under the MIT License - see the license file for details
This project is sponsored by
FAQs
Kalisio geocoding service
The npm package @kalisio/geokoder receives a total of 0 weekly downloads. As such, @kalisio/geokoder popularity was classified as not popular.
We found that @kalisio/geokoder demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.