Request the OSM API (v0.6) from Javascript, with promises :)
⚠ That project is in an heavy development phase. Do not use it until the first stable release.
$ npm install osm-request
The full documentation of osm-request API is detailed in the API documentation.
import OsmRequest from 'osm-request';
const osm = new OsmRequest({
endpoint: 'https://www.openstreetmap.org',
oauthConsumerKey: '...',
oauthSecret: '...',
oauthUserToken: '...',
oauthUserTokenSecret: '...',
});
async function start() {
let element = await osm.fetchElement('node/3683625932');
element = osm.setProperty(element, 'key', 'value');
element = osm.setProperties(element, {
key1: 'value1',
key2: 'value2',
key3: 'value3',
});
element = osm.removeProperty(element, 'key2');
element = osm.setTimestampToNow(element);
element = osm.setCoordinates(element, 1.234, 0.456);
const changesetId = await osm.createChangeset('Created by me', 'My changeset comment');
const isChangesetStillOpen = await osm.isChangesetStillOpen(changesetId);
const newElementVersion = await osm.sendElement(element, changesetId);
element = osm.setVersion(element, newElementVersion);
}
start();
For the OSM dev instance, use that endpoint: https://api06.dev.openstreetmap.org
To start contribute on this project, you can retrieve code using the following commands:
$ git clone git@github.com:osmlab/osm-request.git
$ cd osm-request
$ npm install
$ npm run watch
This project uses a specific work flow for branches:
master
branch is dedicated to releases, managed by repo maintainersdevelop
branch is for currently developed version, managed by repo maintainersfeature/...
branches are for all developers, working on a particular featurePull requests are welcome, as the project is fully open-source. If you want to work on new features, please create a branch named feature/yourFeatureName
. When work is done, open a pull request to merge your branch on develop
branch. The code will be reviewed by one or several developers before being merged, in order to keep a good code quality.
$ git checkout develop
$ git pull origin develop
$ npm version patch -m "release: %s"
$ npm publish
$ git checkout master
$ git pull origin master
$ git merge develop
$ git push origin master
npm version
tests the code, builds it and updates the doc. Then it upgrades the package version number according to the used keyword (patch, minor or major) and commits the modifications in Git (with a proper version tag). Finally, it pushes it to repository with the tag.