Skip to content

get latitude and longitude by address without using google map api

License

Notifications You must be signed in to change notification settings

thundermiracle/geocoder-free

Repository files navigation

geocoder-free

npm version dependencies Status CircleCI codecov

Description

Three packages for geocoding.

Table of contents

Description (@geocoder-free/google)

Get latitude&longitude by google map without using any API.

Install (@geocoder-free/google)

 yarn add @geocoder-free/google

Usage (@geocoder-free/google)

  1. Get latlng by address

    const { GetLatLngByAddress } = require('@geocoder-free/google');
    
    GetLatLngByAddress('tokyo tower').then(console.log);
    // print [35.6585769, 139.7454506]
  2. Get latlng by goo.gl(google map shorten url)

    const { GetLatLngByGooGl } = require('@geocoder-free/google');
    
    GetLatLngByGooGl('https://goo.gl/maps/TmYFq1DdceHVpsHV6').then(console.log);
    // print [35.6585769, 139.7454506]

Description (@geocoder-free/yahoo)

Get latitude&longitude by YOLP(Yahoo! Open Local Platform) or by yahoo map.

Install (@geocoder-free/yahoo)

 yarn add @geocoder-free/yahoo

Usage (@geocoder-free/yahoo)

  1. Get latlng by yahoo api

    const { GetLatLngByAPI } = require('@geocoder-free/yahoo');
    
    GetLatLngByAPI('YOLP appid', '東京都港区六本木').then(console.log);
    // print [35.66288632, 139.73359259]

Description (@geocoder-free/utils)

Utils for geocoding.

Install (@geocoder-free/utils)

Install the package in your project directory with:

// with npm
npm install @geocoder-free/utils

// with yarn
yarn add @geocoder-free/utils

Extra Install (@geocoder-free/utils)

If you want to use HttpClient in server, node-fetch is required:

// with npm
npm install node-fetch

// with yarn
yarn add node-fetch

If you want to use HttpClient in client, fetch-jsonp is required:

// with npm
npm install fetch-jsonp

// with yarn
yarn add fetch-jsonp

Usage (@geocoder-free/utils)

Import

import { xxx } from '@geocoder-free/utils';

eg: import { dms2deg } from '@geocoder-free/utils';

HttpClient

Packages node-fetch and fetch-jsonp are required by HttpClient.

Get

jsonp mode Can be disabled by pasing true to the 3rd parameter.

No. Parameter Required Type Default Description
1 url string
2 returnType string 'json' type of response, 'json' or 'text'
3 forceNodeFetch boolean false if true, fetching data by jsonp will be disabled.
import { Get } from '@geocoder-free/utils/HttpClient';

Get(`https://api.google.com/xxxxxx`).then(console.log);

GetUrl

Get the redirected url.

No. Parameter Required Type Default Description
1 url string
import { GetUrl } from '@geocoder-free/utils/HttpClient';

GetUrl(`https://goo.gl/maps/nQjjgsyid7iGa42J8`).then(console.log);
// get 'https://www.google.com/maps/place/%E7%9A%87%E5%B1%85/@35.6938997,139.7628928,15z/data=!4m5!3m4!1s0x60188c0d02d8064d:0xd11a5f0b379e6db7!8m2!3d35.6851739!4d139.7527993'

Post

jsonp mode Can be disabled by pasing true to the 3rd parameter.

No. Parameter Required Type Default Description
1 url string
2 data object data for post
3 forceNodeFetch boolean false if true, fetching data by jsonp will be disabled.
import { Post } from '@geocoder-free/utils/HttpClient';

Post(`https://api.google.com/xxxxxx`).then(console.log);

dms2deg

No. Parameter Required Type Default Description
1 dmsStr string dms string
dms2deg(`35°39'31.3"N`);
// get 35.658694

dms2deg(`139°44'40.3"W`);
// get -139.744528

getLatLngByDMSStr

No. Parameter Required Type Default Description
1 latlngDmsStr string string contains dms latitude & dms longitude
getLatLngByDMSStr(`35°39'31.3"N+139°44'40.3"E`);
// get [35.658694, 139.744528]

getLatLngByDecimalStr

No. Parameter Required Type Default Description
1 latlngDecimalStr string string contains decimal latitude & decimal longitude(split by comma)
getLatLngByDecimalStr(`35.123, 149.123`);
// get [35.123, 149.123]

getLatLngObj

No. Parameter Required Type Default Description
1 latlngDecimalStr string string contains decimal latitude & decimal longitude(split by comma)
getLatLngObj(`35.123, 149.123`);
// get { lat: 35.123, lng: 149.123 }

getLocaleString

No. Parameter Required Type Default Description
1 dateStr string output is different in different timezone
getLocaleString(`2019-08-29`);
// get "2019/8/29 9:00:00"

logFormat

No. Parameter Required Type Default Description
1 msg string message
2 func function null call func(formatted string) if func is not null
// example is in Asia/Tokyo

logFormat(`hello`);
// get "2019/8/29 9:00:00 -- hello"

logFormat(`hello`, (str) => `[info]${str}`);
// get "[info]2019/8/29 9:00:00 -- hello"

removeSpace

No. Parameter Required Type Default Description
1 str string
removeSpace('  2 3  4  ');
// get "234"

isCorrectLatLng

No. Parameter Required Type Default Description
1 latlngArr array [latitude, longitude]
isCorrectLatLng([NaN, 139.1]);
// get false

isCorrectLatLng([35.123, NaN]);
// get false

isCorrectLatLng([35.123, 139.1]);
// get true

getTimeByTimezone

No. Parameter Required Type Default Description
1 dateStr string
2 timezone number
/*
in UTC system.
*/
getTimeByTimezone('2019-09-01 11:00:00', 9);
// get 1567303200000

new Date('2019-09-01 11:00:00').getTime();
// get 1567335600000

formatDate

No. Parameter Required Type Default Description
1 date string / date
2 format string yyyy/MM/dd HH:mm:ss for '2019-01-09 08:01:01', yyyy: 2019; yy: 19; MM: 01; M: 1; dd: 09; d: 9; HH: 08; H: 8; mm: 01; m: 1; ss: 01; s: 1; SSS: 000;
formatDate('2019-09-01 8:00:00', 'yyyy/M/d H:m:s');
// get "2019/9/1 8:0:0"

cutToBlockNumber

番地までの住所を取得

No. Parameter Required Type Default Description
1 address string 番地の後ろにスペースが必要
cutToBlockNumber('新宿区 2-3-1 新宿ビル305');
// get "新宿区 2-3-1"

removePostCode

郵便マーク(〒)を削除

removePostCode('〒123-1234+tokyo');
// get "123-1234+tokyo"

License

This project is licensed under the terms of the MIT license.