Giter Club home page Giter Club logo

carmen's Introduction

CircleCI

codecov

carmen

Mapnik vector tile-based geocoder with support for swappable data sources. This is an implementation of some of the concepts of Error-Correcting Geocoding by Dennis Luxen.

Depends

Install

npm install

Carmen no longer ships with any default or sample data. Sample data will be provided in a future release.

API

For a simplified example of using the carmen API, see the example folder in this repository.

For more detail about specific elements of the API (and how to use them directly), see the API Docs.

Command-line scripts

Carmen comes with command line utilities that also act as examples of API usage.

To query the default indexes:

./scripts/carmen-index.js --query="new york"

To analyze an index:

./scripts/carmen-analyze.js tiles/01-ne.country.mbtiles

Documentation

Carmen documentation has three parts:

General Documentation

Topic-based documentation is located in the docs directory, organized by topic. These documents are meant to cover high-level design or architectural concepts rather than the code itself. It also includes a glossary of frequently-used vocabulary.

Example Project

The example project is located in the example directory. It is a step-by-step, annotated tutorial for basic usage of carmen.

API Documentation

API documentation is written as JSDoc comments in the source code. It is also available as a markdown-formatted document: docs/api.md. This document is generated using documentationjs, and should be updated after any JSDoc comment changes:

yarn build-docs

API Documentation Style Guide

  • Classes, methods, events, and anything else must be documented with JSDoc comments.
  • Text within JSDoc comments may use markdown formatting. Code identifiers must be surrounded by `backticks`.
  • Documentation must be written in grammatically correct sentences ending with periods.
  • Documentation descriptions must contain more information than what is obvious from the identifier and JSDoc metadata.
  • Class descriptions should describe what the class is, or what its instances are. They do not document the constructor, but the class. They should begin with either a complete sentence or a phrase that would complete a sentence beginning with "A T is..." or "The T class is..." Examples: "Lists are ordered indexed dense collections." "A class used for asynchronous computations."
  • Function descriptions should begin with a third person singular present tense verb, as if completing a sentence beginning with "This function..." If the primary purpose of the function is to return a value, the description should begin with "Returns..." Examples: "Returns the layer with the specified id." "Sets the map's center point."
  • @param, @property, and @returns descriptions should be capitalized and end with a period. They should begin as if completing a sentence beginning with "This is..." or "This..."
  • Functions that do not return a value (return undefined), should not have a @returns annotation.
  • Member descriptions should document what a member represents or gets and sets. They should also indicate whether the member is read-only.
  • Event descriptions should begin with "Fired when..." and so should describe when the event fires. Event entries should clearly document any data passed to the handler, with a link to MDN documentation of native Event objects when applicable.

carmen's People

Contributors

yhahn avatar ingalls avatar apendleton avatar mattficke avatar sbma44 avatar boblannon avatar tmcw avatar camilleanne avatar morganherlocker avatar karenzshea avatar aarthykc avatar ansis avatar artemp avatar miccolis avatar aaaandrea avatar geohacker avatar kaibot3000 avatar flippmoke avatar springmeyer avatar nmargolis avatar mtmail avatar aaronlidman avatar wrynearson avatar fa7c0n avatar heyitsgarrett avatar ianshward avatar kapouer avatar waldyrious avatar willwhite avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.