node-where icon indicating copy to clipboard operation
node-where copied to clipboard

New feature proposal - search by co-ordinates

Open roydondsouza opened this issue 8 years ago • 1 comments

Implementation for Feature Proposal #3

  • Support for search using coordinates.

Usage:

where.is('-80.21, 21.32', function(err, result) {
  if (result) {
    console.log('Address: ' + result.get('address'));
    console.log('Street Number: ' + result.get('streetNumber'));
    console.log('Street: ' + result.get('street'));
    console.log('Full Street: ' + result.get('streetAddress'));
    console.log('City: ' + result.get('city'));
    console.log('State / Region: ' + result.get('region'));
    console.log('State / Region Code: ' + result.get('regionCode'));
    console.log('Zip: ' + result.get('postalCode'));
    console.log('Country: ' + result.get('country'));
    console.log('Country Code: ' + result.get('countryCode'));
    console.log('Lat: ' + result.get('lat'));
    console.log('Lng: ' + result.get('lng'));
  }
});

Tests:

it('geolocates co-ordinates', function(done) {
    var result = where.is('42.3466764,-71.0972178', function(err, result) {
      expect(err).to.equal(null);
      expect(result.get('address')).to.equal('24 Yawkey Way, Boston, MA, 02215, US');
      expect(result.get('streetNumber')).to.equal('24');
      expect(result.get('street')).to.equal('Yawkey Way');
      expect(result.get('streetAddress')).to.equal('24 Yawkey Way');
      expect(result.get('city')).to.equal('Boston');
      expect(result.get('region')).to.equal('Massachusetts');
      expect(result.get('regionCode')).to.equal('MA');
      expect(result.get('postalCode')).to.equal('02215');
      expect(result.get('country')).to.equal('United States');
      expect(result.get('countryCode')).to.equal('US');
      expect(result.get('lat')).to.equal(42.3466214);
      expect(result.get('lng')).to.equal(-71.097143);
      done();
    });
  });

Test Results:

$ npm test

> [email protected] test /private/var/www/node-where
> mocha test/test.js

  where.is
    ✓ returns an empty Result if given no address
    ✓ geolocates an IPv4 address (276ms)
    ✓ geolocates a postal address (161ms)
    ✓ geolocates a landmark (77ms)
    ✓ geolocates co-ordinates (85ms)

  5 passing (613ms)

roydondsouza avatar May 27 '17 22:05 roydondsouza

@venables what do you think? Let me know if you need any changes.

roydondsouza avatar Oct 05 '17 08:10 roydondsouza