Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -205,3 +205,9 @@ cython_debug/
marimo/_static/
marimo/_lsp/
__marimo__/


# VS Code
.vscode/

pb_tool.cfg
186 changes: 122 additions & 64 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,98 +1,160 @@
# StreetView Pro

A lightweight QGIS plugin for opening Google Street View directly from the map canvas with customizable heading and direction.
Open Google Street View directly from the QGIS map canvas with an animated hanging Pegman cursor, customizable heading, and smart right-click tools.

![QGIS Version](https://img.shields.io/badge/QGIS-3.0+-green.svg)
![License](https://img.shields.io/badge/license-MIT-blue.svg)
![Version](https://img.shields.io/badge/version-1.0-orange.svg)
![Version](https://img.shields.io/badge/version-2.0-orange.svg)

---

## Overview

StreetView Pro allows you to quickly access Google Street View from any location on your QGIS map. Simply click to open Street View, or drag to set a specific viewing direction. The plugin features an intuitive interface with visual feedback and right-click menu integration for enhanced workflow efficiency.
StreetView Pro is a lightweight and interactive QGIS plugin that allows you to instantly open Google Street View from any map location.

With a smooth hanging Pegman cursor similar to Google Maps, you can click or drag to define the viewing direction, copy coordinates or Street View URLs, and seamlessly return to your workflow.

Designed for GIS professionals, photogrammetrists, surveyors, and map editors who need quick field verification and visual reference.

---

## Key Features (v2.0)

1. **Click or Drag to Open Street View**
Single click for instant view or drag to define custom heading.

2. **Directional Control with Visual Arrow**
A dynamic direction line with arrow shows the exact viewing angle.

3. **Animated Hanging Pegman Cursor**
Replaces the static camera icon with a Google-Maps-style Pegman.

### Visual Guide
4. **Dynamic Pegman Tilt Animation**
Pegman tilts left/right based on movement direction and speed.

![Cover Page](docs/images/Cover%20Page.png)
5. **Right-Click Quick Access**
- Open Street View at clicked location
- Copy coordinates (X, Y format)
- Copy full Street View URL

![Key Features](docs/images/Key%20Features.png)
6. **Automatic Tool Reset**
Returns to the default selection tool after opening Street View.

![Toolbar, Message & Icon](docs/images/Toolbar,%20message%20&%20icon.png)
7. **Full CRS Support**
Works with any project CRS and automatically transforms to WGS84.

8. **ESC Key Cancelation**
Cancel operation instantly without opening Street View.

9. **Dedicated StreetView Pro Toolbar**
Easy activation with clear message bar instructions.

![Right Click](docs/images/Right%20Click.png)
---

## Installation

### From QGIS Plugin Repository (Recommended)

1. Open QGIS
2. Go to `Plugins` → `Manage and Install Plugins`
3. Search for **"StreetView Pro"**
3. Search for **StreetView Pro**
4. Click **Install Plugin**

---

### Manual Installation
1. Download the latest release from [GitHub Releases](https://github.com/md-moinul-mobin/StreetView-Pro/releases)

1. Download the latest release from GitHub
2. Extract the ZIP file
3. Copy the `StreetView Pro` folder to your QGIS plugins directory:
- **Windows:** `C:\Users\YourUsername\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\`
- **macOS:** `~/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/`
- **Linux:** `~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/`
3. Copy the `StreetView Pro` folder to:

**Windows**
`C:\Users\YourUsername\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\`
or
`C:\Users\YourUsername\AppData\Roaming\QGIS\QGIS4\profiles\default\python\plugins\`

**macOS**
`~/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/`
or
`~/Library/Application Support/QGIS/QGIS4/profiles/default/python/plugins/`

**Linux**
`~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/`
or
`~/.local/share/QGIS/QGIS4/profiles/default/python/plugins/`

4. Restart QGIS
5. Enable the plugin from `Plugins` → `Manage and Install Plugins`

---

## Usage

### Basic Usage - Click & Drag
1. Click the **StreetView Pro** icon in the toolbar
2. **Single Click** on the map to open Street View at that location with default heading (North)
3. **Click and Drag** to set a specific viewing direction — the cyan line shows where you'll be looking
4. Release to open Google Street View in your browser
### Basic Workflow

### Context Menu (Right-Click)
Right-click anywhere on the map to access quick actions:
- **Open Street View Here** Opens Street View at clicked location with default heading
- **Copy Coordinate** — Copies coordinates in your project's CRS (X, Y format with 1 decimal)
- **Copy Street View URL** — Copies the full Google Street View URL to clipboard
1. Click the **StreetView Pro** toolbar icon
2. Move the hanging Pegman over the map
3. **Single Click** Opens Street View with default heading
4. **Click & Drag** → Set custom viewing direction
5. Release mouse → Street View opens in your default browser

### Keyboard Shortcuts
- **ESC** — Cancel the current operation and return to selection mode
After opening, the plugin automatically switches back to the selection tool.

---

## Requirements
### Right-Click Options

- QGIS 3.0 or higher
- Internet connection (to access Google Street View)
- Web browser
Right-click anywhere on the map canvas to:

- Open Street View at that location
- Copy coordinates (X, Y format)
- Copy full Google Street View URL

---

### Keyboard Shortcut

- **ESC** → Cancel and exit StreetView mode

---

## Technical Details

- **Plugin Name:** StreetView Pro
- **Version:** 1.0
- **QGIS Minimum Version:** 3.0
- **License:** MIT
- **Version:** 2.0
- **Minimum QGIS Version:** 3.0
- **Maximum QGIS Version:** 4.99
- **Qt Compatibility:** Qt5 (QGIS 3) and Qt6 (QGIS 4)
- **Category:** Web
- **License:** MIT
- **Language:** Python

### How It Works
1. Captures click/drag events on the QGIS map canvas
2. Calculates heading angle from drag direction
3. Transforms coordinates from project CRS to WGS84 (required by Google Maps)
4. Constructs Google Street View URL with coordinates, heading, pitch, and FOV
5. Opens URL in default web browser
---

## How It Works

1. Captures click and drag events from the QGIS map canvas
2. Calculates heading from drag direction
3. Transforms coordinates from project CRS to WGS84
4. Builds a Google Street View URL with heading parameters
5. Opens the URL in the default web browser

---

## Changelog

### Version 1.0 (2025-10-09)
### Version 2.0 – Hanging Pegman Cursor Update

- Replaced static camera cursor with animated hanging Pegman
- Added dynamic tilt animation based on movement
- Improved visual interaction and user experience
- Enhanced overall usability and workflow smoothness

### Version 1.0

- Initial release
- Click or drag to open Street View with direction
- Click or drag to open Street View
- Right-click context menu integration
- Custom cursor and visual direction indicators
- CRS support with auto WGS84 transformation
- ESC key cancellation
- Auto return to selection mode
Expand All @@ -101,50 +163,46 @@ Right-click anywhere on the map to access quick actions:

## Contributing

Contributions are welcome! Please follow these steps:
Contributions are welcome.

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
2. Create a feature branch
3. Commit your changes
4. Push to your branch
5. Open a Pull Request

---

## Issues

Found a bug or have a feature request? Please open an issue on [GitHub Issues](https://github.com/md-moinul-mobin/StreetView-Pro/issues).

---

## License
## Issues & Feature Requests

This project is licensed under the MIT License — see the [LICENSE](LICENSE) file for details.
Found a bug or want to suggest an improvement?
Open an issue on GitHub.

---

## Author

**MD Moinul Mobin**
- Email: [mdmoinulmobin@gmail.com](mailto:mdmoinulmobin@gmail.com)
- GitHub: [@md-moinul-mobin](https://github.com/md-moinul-mobin)
GIS Specialist
Email: mdmoinulmobin@gmail.com
GitHub: https://github.com/md-moinul-mobin/StreetView-Pro

---

## Acknowledgments
## License

- Thanks to the QGIS community for their excellent documentation
- Inspired by the need for quick Street View access during field verification workflows
This project is licensed under the MIT License.

---

## Support

If you find this plugin helpful, please:
- ⭐ Star the repository on GitHub
- 🐛 Report bugs or request features via [Issues](https://github.com/md-moinul-mobin/StreetView-Pro/issues)
- 📢 Share it with others who might find it useful
If you find this plugin useful:

- Star the repository
- Share it with colleagues
- Submit feedback or suggestions

---

**Note:** This plugin uses Google Street View service. Please ensure you comply with Google's Terms of Service when using this plugin.
**Note:** This plugin opens Google Street View in your browser. Please ensure compliance with Googles Terms of Service when using Street View data.
Binary file removed StreetView Pro v1.0.zip
Binary file not shown.
5 changes: 5 additions & 0 deletions __init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-

def classFactory(iface):
from .streetviewpro import StreetViewPro
return StreetViewPro(iface)
Binary file added assets/center.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/left1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/left2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/left3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/left4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/left5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/right1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/right2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/right3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/right4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/right5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 32 additions & 0 deletions metadata.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[general]
name=StreetView Pro
description=Open Google Street View directly from QGIS map canvas with a hanging pegman cursor, customizable heading and direction.
version=2.0
qgisMinimumVersion=3.0
qgisMaximumVersion=4.99
author=MD Moinul Mobin
email=mdmoinulmobin@gmail.com
icon=streetviewpro.png
category=Web
tags=streetview,google,maps,navigation,web,viewer,panorama,gis,mapviewer,coordinate,photoviewer,streetimagery,streetphoto,360view,googleimagery,earthview,google-earth,openstreetmap,google-streetview,openstreetview,copystreetviewurl
homepage=https://github.com/md-moinul-mobin/StreetView-Pro
repository=https://github.com/md-moinul-mobin/StreetView-Pro
tracker=https://github.com/md-moinul-mobin/StreetView-Pro/issues
license=MIT
about=StreetView Pro v2.0 Plugin - Key Features:
1. Click or drag on map canvas to open Google Street View directly.
2. Drag to set viewing direction - a direction line with arrow shows the heading.
3. Hanging pegman cursor similar to Google Maps native Street View experience.
4. Pegman cursor dynamically tilts left/right based on movement direction and speed.
5. Right-click anywhere to open Street View at that location.
6. Right-click to copy coordinates (X, Y format) to clipboard.
7. Right-click to copy Street View URL to clipboard.
8. Automatically returns to selection tool after Street View opens.
9. Works with any project CRS, auto-transforms to WGS84 for Street View.
10. ESC key to cancel without opening Street View.
11. A dedicated StreetView Pro Toolbar for easy access.
12. Message bar instructions shown when tool is activated.
experimental=False
deprecated=False
changelog=2.0 - Hanging Pegman Cursor
- Replaced camera icon cursor with an animated hanging pegman cursor similar to Google Maps.
Binary file renamed StreetView Pro v1.1.zip → streetviewpro.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading