Skip to main content

Turn addresses into coordinates and find nearby amenities using Google Maps API

Project description

Mapradar

Crates.io PyPI License: MIT

Mapradar is a location intelligence library that converts addresses to coordinates, finds nearby services (banks, hospitals), and calculates travel distances via Google Maps APIs.


Installation

Primary Method

Python

uv add mapradar

Rust

[dependencies]
mapradar = { version = "0.3.0", default-features = false }
tokio = { version = "1", features = ["full"] }

Note: Use default-features = false for pure Rust (no Python bindings).

CLI Tool

cargo install mapradar
From Source
git clone https://github.com/iamprecieee/mapradar
cd mapradar

# Python
uv add maturin
maturin develop

# Rust
cargo build

Usage

CLI Commands

# Geocode an address
mapradar geocode "1600 Amphitheatre Parkway, Mountain View, CA"

# Find nearby amenities
mapradar nearby --lat 6.6018 --lng 3.3515 --radius 500 --type bank,school

# Distance calculation
mapradar distance --origin-addr "Shibuya, Tokyo" --dest-addr "Shinjuku, Tokyo" --mode drive
Library Usage

Python Example

import asyncio
from mapradar import MapradarClient, SearchQuery, ServiceType, TravelParameters

async def main():
    client = MapradarClient("YOUR_GOOGLE_MAPS_API_KEY")
    
    # Calculate travel distance between two points
    params = TravelParameters(
        origin_address="Shibuya, Tokyo",
        destination_address="Shinjuku, Tokyo"
    )
    distance = await client.calculate_travel_distance(params)
    print(f"Distance: {distance:.2f} km")

    # Find banks and hospitals near an address
    query = SearchQuery.from_address("Shibuya, Tokyo")
    intel = await client.fetch_intelligence(
        query,
        service_types=[ServiceType.Bank, ServiceType.Hospital],
        radius_km=3.0
    )
    print(f"Location: {intel.location.address}")

asyncio.run(main())

Rust Example

use mapradar::client::MapradarClient;
use mapradar::models::{SearchQuery, ServiceType};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = MapradarClient::new("YOUR_API_KEY".to_string());
    let location = client.geocode_async("Times Square, NYC").await?;
    println!("{}, {} ({})", location.latitude, location.longitude, location.country);
    Ok(())
}

Features

Feature Description
Geocoding Convert addresses to coordinates
Reverse Geocoding Convert coordinates to addresses
Nearby Search Find banks, hospitals, schools, etc.
Distance Fetching Fast travel/Haversine distance with address fallthrough
Parallel Fetching Search multiple service types at once
Caching Automatic in-memory cache reduces API calls
JSON-RPC 2.0 Built-in format for microservice APIs

Configuration

Option Default Description
GOOGLE_MAPS_API_KEY None Your Google Maps API key. Enable Geocoding API, Places API (New), and Routes API.
max_results 20 Maximum number of places returned per category.
radius 5.0 Search radius in kilometers.
--mode drive Transit mode for distance calculation (drive, okada, keke, danfo, brt).

FAQ

What APIs do I need enabled?

Enable these in Google Cloud Console:

  • Geocoding API
  • Places API (New)
  • Routes API (V2)
Is there rate limiting?

Mapradar does not rate limit locally. Your Google Maps API quota applies. Use the built-in Moka cache to reduce outbound calls.

Does caching persist across restarts?

No. Cache is in-memory only. It persists for the lifetime of your MapradarClient instance to ensure maximum security.


License

MIT


Contributing | Security | Code of Conduct

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mapradar-0.4.0.tar.gz (34.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mapradar-0.4.0-cp313-cp313-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

File details

Details for the file mapradar-0.4.0.tar.gz.

File metadata

  • Download URL: mapradar-0.4.0.tar.gz
  • Upload date:
  • Size: 34.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.11.5

File hashes

Hashes for mapradar-0.4.0.tar.gz
Algorithm Hash digest
SHA256 01762947cc1a2476da3ca6f759ad2a8bf91c86ece669068570ccc83e9038628c
MD5 ca34bc10d04e660d88fe51f2cff644a5
BLAKE2b-256 01307f622a6d02a8b1dad3c8f809642c0bf85ffe8ff6b6b6f792f9c741aec371

See more details on using hashes here.

File details

Details for the file mapradar-0.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mapradar-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba308e74eee2c5f94e6975b8f8b8eeb3a26806cd9104cf7d3c0e006714fddf18
MD5 a18c44b10e54b5db6ec35d98aec39c05
BLAKE2b-256 4912711c80544873d560528f554c1c2a2b21a0fa24752a7134b97b091037083d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page