3.0.0 • Published 5 years ago

@warren-bank/node-google-maps-places-import-tool v3.0.0

Weekly downloads
-
License
GPL-2.0
Repository
github
Last release
5 years ago

Google Maps places import tool

Command-line tool to import places into Google Maps. Supports: geoJSON, KML, GPX.

Background:

  • Google Maps doesn't yet provide a way to import lists of places
    • menu option: "Your places" > "Saved"
  • Google Trips Saved Places are built on top of Google Maps lists of places
    • when planning a trip, the ability to import lists of places would be extremely helpful
    • an import tool is needed

Installation (global w/ npm):

npm install @warren-bank/node-google-maps-places-import-tool --global

Dependencies (global):

  • puppeteer
    • install globally with a full copy of Chromium web browser:
        npm install puppeteer --global

Binary (global):

gmaps-places <options>

Installation (local w/ wget via github):

mkdir 'workspace'
cd    'workspace'

wget --content-disposition --no-check-certificate 'https://github.com/warren-bank/node-google-maps-places-import-tool/archive/master.zip'
unzip 'node-google-maps-places-import-tool-master.zip'
rm -f 'node-google-maps-places-import-tool-master.zip'

cd 'node-google-maps-places-import-tool-master'

Dependencies (local):

  • puppeteer
    • install locally with a full copy of Chromium web browser:
        npm install puppeteer --save

Binary (local):

npm run 'gmaps-places' <options>

Usage:

gmaps-places <options>

options:
========
"-h"
"--help"
    Print all command-line options.

"-v"
"--version"
    Print version number.

"-d"
"--debug"
    Print the list of Google Maps URLs obtained from the "input" filepath.
    Does not perform import.

"-D"
"--distinct"
    Restrict each "distinct" place to a single list.
    No action will occcur when the place has already been added to another list.

"-u <username>"
"--username <username>"
    Specify the Google account "username".

"-p <password>"
"--password <password>"
    Specify the Google account "password".

"-l <list>"
"--list <list>"
    Specify the Google Maps "list" name.
    Value is not case sensitive.
    The default is: "Starred places"

"-i <filepath>"
"--input <filepath>"
    Specify the "input" filepath.
    File extension determines how the contents are parsed.
    Supported extensions:
      * "json": geoJSON
      * "kml"
      * "gpx"
      * "txt": list of Google Maps URLs
        - https://www.google.com/maps/place/...
        - https://www.google.com/maps/dir/...

Caveats:

  • "input" files in "txt" format are parsed with the attempt to be very forgiving of sloppy format
    • the parser tries to extract as many lat/lon pairs as are contained in each URL
    • helpful when URLs are obtained from non-technical users
    • sometimes this is good and produces the desired result
    • sometimes it results in extra "places"
    • may require some cleanup after import
      • still faster than entering the data manually

Example:


Credits:

Changes from original implementation:

  • moves hard-coded variables to CLI options
  • supports more input data formats

Legal: