geotoolbox

Represent places and geocode addresses using PlaceDescriptor with MapKit async APIs.

114|8|Updated Mar 4, 2025
One-click install
npx skills add https://github.com/gustavscirulis/snapgrid --skill geotoolbox-gustavscirulis
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: geotoolbox
Source: https://github.com/gustavscirulis/snapgrid/tree/main/.claude/skills/skills/mapkit/geotoolbox
Command: npx skills add https://github.com/gustavscirulis/snapgrid --skill geotoolbox-gustavscirulis

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill simplifies working with location data by providing robust tools for representing places, geocoding addresses, and managing multi-service place identifiers.

Core Features & Use Cases

  • Place Representation: Create and manage place data using PlaceDescriptor from coordinates, addresses, or MKMapItems.
  • Geocoding: Perform forward geocoding (address to coordinates) and reverse geocoding (coordinates to address) using MapKit's asynchronous APIs.
  • Cross-Service Identifiers: Store and retrieve identifiers for various mapping services (e.g., Apple Maps, Google Maps) for interoperability.
  • Use Case: You need to store a business location that has both a street address and GPS coordinates, and you want to be able to easily look it up in both Apple Maps and Google Maps later.

Quick Start

Use the geotoolbox skill to geocode the address 'One Apple Park Way, Cupertino, CA'.

Frequently Asked Questions about geotoolbox

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I convert an address to coordinates using MapKit async APIs?

Forward geocoding converts a street address into GPS coordinates using MapKit's asynchronous APIs. You construct a place descriptor from the address string, and the async service returns the corresponding latitude and longitude.

What is the best way to store location data for both Apple Maps and Google Maps?

Storing cross-service location identifiers allows you to save place data for both Apple Maps and Google Maps. A place descriptor holds these multiple service identifiers alongside coordinates and addresses for cross-platform interoperability.

How does reverse geocoding work with coordinates in Swift?

Reverse geocoding translates GPS coordinates into a human-readable street address. Using MapKit's async APIs, you pass the latitude and longitude to a geocoder service, which returns the matching physical address.

Can I create a place descriptor from an MKMapItem?

Yes, you can construct a place descriptor directly from an MKMapItem. The framework handles the extraction of location data from the MapKit item, allowing you to standardize it with coordinates and multi-service identifiers.

When do I need a portable location representation?

You need a portable location representation when your app must share place data across different mapping services. It standardizes coordinates, addresses, and service-specific identifiers into a single cross-platform format.

Does MapKit geocoding support asynchronous API calls?

MapKit geocoding supports asynchronous API calls for both forward and reverse operations. This allows you to perform address-to-coordinate and coordinate-to-address conversions without blocking the main thread.