detect-coordinates

0.2.0 • Public • Published

detect-coordinates travis npm

Geo coordinates detection based on a mongodb-schema type.

This module exports a function which detects whether a mongodb-schema type object represents geo coordinates, either as legacy coordinate pairs (2-element array of long/lat coordinates) or a GeoJSON object.

It returns a zipped array of [[lng, lat], [lng, lat], ...] coordinates, or false if no coordinates could be found.

Example

For this example, you need the mongodb node driver, mongodb-schema and lodash modules installed in addition to this module:

npm install mongodb mongodb-schema detect-coordinates lodash

This code connects to a MongoDB server, gets the schema of a collection and looks at the first type of the first field to determine if it has coordinates.

var parseSchema = require('mongodb-schema');
var connect = require('mongodb');
var detect = require('detect-coordinates');
var _ = require('lodash');
 
// connect to a MongoDB instance
connect('mongodb://localhost:27017/test', function(err, db){
  if(err) return console.error(err);
 
  // get the schema of the collection `test.users` (only first 100 docs)
  parseSchema('test.users', db.collection('users').find().limit(100), function(err, schema){
    if(err) return console.error(err);
 
    // serialize the schema and extract first type of field "last_position"
    var plainSchema = schema.serialize();
    var type = _.find(plainSchema.fields, ['name', 'last_position']).types[0];
 
    // check if that type represents geo coordinates
    var coordinates = detect(type);
    if (coordinates) {
      console.log('type contains coordinates, here they are:\n', coordinates);
    } else {
      console.log('type does not contain coordinates!');
    }
    db.close();
  });
});

This outputs:

type contains coordinates, here they are:
[ [ -73.98808416, 40.74854862 ],
  [ -74.015756, 40.711512 ],
  [ -74.0026376103, 40.7390169121 ],
  [ -74.015756, 40.711512 ],
  [ -73.96525063, 40.71044554 ],
  ...

License

Apache 2.0

Readme

Keywords

none

Package Sidebar

Install

npm i detect-coordinates

Weekly Downloads

0

Version

0.2.0

License

Apache-2.0

Last publish

Collaborators

  • orechova
  • himanshusinghs
  • c-buckingham
  • mongo-j
  • mabaasit
  • alexander_schroll
  • chuck.kalmanek
  • mongodb-js-user
  • rueckstiess
  • durran
  • lerouxb
  • fredtruman
  • mbroadst
  • hswolff
  • satyasinha
  • matt_d_rat
  • rhysm
  • tomhollander
  • alena.khineika
  • jeff-allen-mongo
  • mmarcon
  • jonathan.balsano
  • mongodb-build
  • jack.weir
  • stennie
  • mcasimir
  • kristina.stefano
  • jarjee
  • shaketbaby
  • devtoolsbot
  • addaleax
  • gribnoysup
  • mutukrish