Skip to content

New feature proposal - search by co-ordinates#4

Open
roydondsouza wants to merge 4 commits intovenables:masterfrom
roydondsouza:develop
Open

New feature proposal - search by co-ordinates#4
roydondsouza wants to merge 4 commits intovenables:masterfrom
roydondsouza:develop

Conversation

@roydondsouza
Copy link

@roydondsouza roydondsouza commented May 27, 2017

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

> node-where@1.1.0 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
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant