Skip to content

boyonglin/google-maps-extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

373 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

The Maps Express: AI-First Extension for Google Maps

A Shortcut to Google Maps, but Rich and Beautiful.

Chrome Web Store Chrome Web Store Users License Manifest V3 Gemini PRs Welcome

๐ŸŒ English | ็น้ซ”ไธญๆ–‡ | ๆ—ฅๆœฌ่ชž

Chrome Web Store ย ย  Gumroad ย ย  Portfolio

A Chrome extension that streamlines your Google Maps workflow โ€” search locations, get directions, and manage favorites with a single shortcut or right-click, plus AI-powered place summaries via Gemini.

No workflow disruption. No context switching. Just fast maps.


Demo

https://youtu.be/xv0tVQAi3qo


Features at a Glance

Feature Details
Quick Search Highlight text + Ctrl+Shift+S / โŒ˜+โ‡ง+S or right-click โ†’ instant Google Maps search
Search Bar Open via Alt+Shift+S / โŒฅ+โ‡ง+S or click icon โ€” search without leaving the page
Quick Directions Right-click highlighted text or press Alt+R / โŒฅ+R โ†’ get directions instantly
Search History Auto-saves your last 10 searches for quick re-access
Favorites List Save, import, and export favorite locations as CSV โ€” works with Google My Maps
Place Summary AI-powered summaries of locations on any page via Gemini Flash
Video Summary Extract and summarize locations mentioned in YouTube videos
Auto-attach Links Automatically detect place names on web pages and attach Google Maps links
3 UI languages English ยท ็น้ซ”ไธญๆ–‡ ยท ๆ—ฅๆœฌ่ชž โ€” auto-detected
Dark / Light theme Theme toggle following your preference

How It Works

You're browsing an article / watching a YouTube video / planning a trip
        โ”‚
        โ–ผ
Highlight a place name (or press the shortcut)
        โ”‚
        โ”œโ”€โ†’ Quick Search    โ†’ opens Google Maps in a grouped tab
        โ”œโ”€โ†’ Quick Directions โ†’ opens Google Maps directions
        โ””โ”€โ†’ Place Summary   โ†’ Gemini AI summarizes the location
        โ”‚
        โ–ผ
Search history auto-saved ยท โญ Favorite to your list
        โ”‚
        โ–ผ
Export favorites as CSV โ†’ import into Google My Maps
        โ†’ Your personal map, built from any website

Installation

For Users โ€” Chrome Web Store (Recommended)

Install directly from the Chrome Web Store.

For Developers โ€” Local Setup

  1. Clone the repository:

    git clone https://github.com/boyonglin/google-maps-extension.git
    cd google-maps-extension
    npm install
  2. Open Chrome โ†’ chrome://extensions/

  3. Toggle Developer mode on (top-right)

  4. Click Load unpacked โ†’ select the Package/ folder

๐Ÿ“ธ Step-by-step screenshots
  1. Open Browser Extensions โ†’ click "Manage extensions"
    Manage extensions

  2. Enable Developer Mode
    Developer mode

  3. Load Unpacked โ†’ select the project folder
    Load unpacked

After any code change: click Reload on the extension card in chrome://extensions/, then refresh open tabs.


Configuration

Keyboard Shortcuts

Action Default Shortcut Mac Shortcut
Quick Search Ctrl+Shift+S โŒ˜+โ‡ง+S
Open Search Bar Alt+Shift+S โŒฅ+โ‡ง+S
Auto-attach Links Alt+S โŒฅ+S
Quick Directions Alt+R โŒฅ+R

To customize shortcuts:

๐Ÿ“ธ How to change shortcuts
  1. Go to extensions page โ†’ "Manage extensions"
    Manage extensions

  2. Select Keyboard Shortcuts
    Keyboard shortcuts

  3. Click the input field and set your desired key
    Type the shortcut

  4. (Optional) Change scope to "Global" for use outside the browser
    Shortcut level

Gemini API Key (for AI Features)

To enable Place Summary and Video Summary, you need a free Gemini API key:

  1. Go to Google AI Studio and sign in
  2. Agree to the terms of service
  3. Click Create API Key โ†’ select a project
  4. Copy the key and paste it into the extension's settings
๐Ÿ“ธ Step-by-step screenshots
  1. Consent to Terms

  2. Create API Key

  3. Select a New Project

  4. Copy Your Key


Google My Maps Integration

Export your favorites as CSV and import them into Google My Maps to build a personal map:

๐Ÿ“ธ Step-by-step screenshots
  1. Open My Maps: Google Maps โ†’ "Your places" โ†’ "Maps" โ†’ "Create Map"

  2. Create a New Map

  3. Import โ†’ click "Import"

  4. Choose CSV File exported from the extension

  5. Select Columns to position placemarks (default: "name")

  6. Done!


Privacy & Security

Question Answer
Where is data stored? Browser-local localStorage only โ€” never leaves your device
Does it make network requests? Only for Gemini API calls (when you use AI features) and ExtPay (payment). No tracking or telemetry on your search data.
Can websites see my data? No. Data is isolated in the extension's storage, inaccessible to page scripts.
Can I delete my data? Yes โ€” delete individual items via the popup, or clear all via browser settings.

Your searches, favorites, and history stay on your device. The extension only calls external APIs when you explicitly use AI summary features.


Tech Stack

Layer Technology
Extension framework Chrome Manifest V3
UI HTML + Bootstrap 5.3 + SCSS
AI Gemini Flash API (gemini-3.1-flash-lite-preview)
Payment ExtPay
Persistence localStorage
Localization Chrome i18n (en ยท zh-TW ยท ja)
Testing Jest + jsdom
๐Ÿ“‚ Project Structure
.
โ”œโ”€โ”€ Package/
โ”‚   โ”œโ”€โ”€ _locales/              # i18n (en, zh_TW, ja)
โ”‚   โ”œโ”€โ”€ css/                   # Compiled CSS
โ”‚   โ”œโ”€โ”€ dist/
โ”‚   โ”‚   โ”œโ”€โ”€ components/        # Modular UI components
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/             # Custom hooks
โ”‚   โ”‚   โ”œโ”€โ”€ utils/             # Utility functions
โ”‚   โ”‚   โ”œโ”€โ”€ background.js      # Service worker
โ”‚   โ”‚   โ”œโ”€โ”€ contentScript.js   # Content script
โ”‚   โ”‚   โ””โ”€โ”€ popup.js           # Popup logic
โ”‚   โ”œโ”€โ”€ images/                # Icons and assets
โ”‚   โ”œโ”€โ”€ vendor/                # 3rd-party libraries (Bootstrap, etc.)
โ”‚   โ”œโ”€โ”€ manifest.json          # Extension configuration
โ”‚   โ””โ”€โ”€ popup.html             # Popup interface
โ”œโ”€โ”€ scss/                      # SCSS source files
โ”œโ”€โ”€ tests/                     # Unit tests (Jest)
โ”œโ”€โ”€ jest.config.js
โ””โ”€โ”€ package.json

Debugging & Testing

Target How to reach it
Background Service Worker chrome://extensions/ โ†’ The Maps Express โ†’ Service worker
Popup Right-click extension icon โ†’ Inspect popup
Content scripts DevTools โ†’ Sources โ†’ Content scripts
localStorage DevTools โ†’ Application โ†’ Local Storage
npm test              # Run all unit tests
npm run test:watch    # Watch mode
npm run test:coverage # Coverage report

Contributing

PRs and issues are welcome! Please open an issue to discuss significant changes before submitting a PR.


License

MIT ยฉ 2023โ€“2026 Clancy Lin


References


Contributors

  • Chin-Hsuan Sun
  • Michael Wu