{"id":20373672,"url":"https://github.com/doublesecretagency/craft-googlemaps","last_synced_at":"2026-02-09T00:14:03.085Z","repository":{"id":40785527,"uuid":"227919009","full_name":"doublesecretagency/craft-googlemaps","owner":"doublesecretagency","description":"Google Maps plugin for Craft CMS - Maps in minutes. Powered by the Google Maps API.","archived":false,"fork":false,"pushed_at":"2025-04-04T22:26:39.000Z","size":42835,"stargazers_count":10,"open_issues_count":27,"forks_count":12,"subscribers_count":3,"default_branch":"v5-dev","last_synced_at":"2025-08-17T14:24:20.313Z","etag":null,"topics":["address","craft-cms","craft-cms-plugin","craft-plugin","craftcms","geocoding","geolocation","google-maps","google-maps-api","map","maps","proximity-searching","visitor-geolocation"],"latest_commit_sha":null,"homepage":"https://plugins.doublesecretagency.com/google-maps/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doublesecretagency.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-12-13T20:43:31.000Z","updated_at":"2025-04-04T22:26:06.000Z","dependencies_parsed_at":"2024-04-20T23:32:38.237Z","dependency_job_id":"4da2343d-e56a-4361-bd1a-d71f15618df5","html_url":"https://github.com/doublesecretagency/craft-googlemaps","commit_stats":{"total_commits":571,"total_committers":3,"mean_commits":"190.33333333333334","dds":0.005253940455341555,"last_synced_commit":"056968d95aab33e71bc657ea27973890d57d55aa"},"previous_names":[],"tags_count":68,"template":false,"template_full_name":null,"purl":"pkg:github/doublesecretagency/craft-googlemaps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doublesecretagency%2Fcraft-googlemaps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doublesecretagency%2Fcraft-googlemaps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doublesecretagency%2Fcraft-googlemaps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doublesecretagency%2Fcraft-googlemaps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doublesecretagency","download_url":"https://codeload.github.com/doublesecretagency/craft-googlemaps/tar.gz/refs/heads/v5-dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doublesecretagency%2Fcraft-googlemaps/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274583701,"owners_count":25311897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["address","craft-cms","craft-cms-plugin","craft-plugin","craftcms","geocoding","geolocation","google-maps","google-maps-api","map","maps","proximity-searching","visitor-geolocation"],"created_at":"2024-11-15T01:19:31.116Z","updated_at":"2026-02-09T00:13:58.065Z","avatar_url":"https://github.com/doublesecretagency.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg width=\"66\" align=\"left\" src=\"https://plugins.doublesecretagency.com/google-maps/images/icon.svg\" alt=\"Plugin icon\"\u003e\n\n# Google Maps plugin for Craft CMS\n\n**Maps in minutes. Powered by the Google Maps API.**\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"#includes-easy-to-use-address-fields\"\u003eAddress Fields\u003c/a\u003e \u0026nbsp;\u0026nbsp;\u0026bull;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#create-flexible-dynamic--static-maps\"\u003eDynamic \u0026 Static Maps\u003c/a\u003e \u0026nbsp;\u0026nbsp;\u0026bull;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#search-for-the-nearest-locations\"\u003eProximity Searching\u003c/a\u003e \u0026nbsp;\u0026nbsp;\u0026bull;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#simple-ip-based-visitor-geolocation\"\u003eIP-based Geolocation\u003c/a\u003e\n\u003c/div\u003e\n\n---\n\n### Includes easy-to-use Address Fields\n\nWhen managing your Craft data, each location can be set with a convenient Address field...\n\n\u003cp align=\"center\"\u003e\n    \u003cimg width=\"603\" src=\"https://github.com/doublesecretagency/craft-googlemaps/blob/9b27de094d7cf8fc5b1f044354b99ddce9019a89/docs/README-images/address-field.gif?raw=true\" alt=\"Animated GIF of an Address field\"\u003e\n\u003c/p\u003e\n\n### Create flexible Dynamic \u0026 Static Maps\n\nAdd markers, use info windows, style maps, change marker icons, apply KML layers, and much, much more...\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/doublesecretagency/craft-googlemaps/blob/9b27de094d7cf8fc5b1f044354b99ddce9019a89/docs/README-images/dynamic-map.png?raw=true\" alt=\"Screenshot of a dynamic map\"\u003e\n\u003c/p\u003e\n\n\u003e**Universal API**\n\u003e\n\u003eThe plugin features a powerful [universal API](https://plugins.doublesecretagency.com/google-maps/dynamic-maps/universal-api/) which works nearly identically across **JavaScript, Twig, and PHP!**\n\n### Search for the Nearest Locations\n\nFind the closest locations, and sort the results from nearest to furthest...\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/doublesecretagency/craft-googlemaps/blob/9b27de094d7cf8fc5b1f044354b99ddce9019a89/docs/README-images/proximity-search.png?raw=true\" alt=\"Screenshot of a set of proximity search results\"\u003e\n\u003c/p\u003e\n\n### Simple IP-based Visitor Geolocation\n\nLocate your visitors based on their device's IP address...\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/doublesecretagency/craft-googlemaps/blob/9b27de094d7cf8fc5b1f044354b99ddce9019a89/docs/README-images/geolocation.png?raw=true\" alt=\"Screenshot of visitor geolocation results\"\u003e\n\u003c/p\u003e\n\n---\n\n## How to Install the Plugin\n\n### Installation via Plugin Store\n\nSee the complete instructions for [installing via the plugin store...](https://plugins.doublesecretagency.com/google-maps/getting-started/#installation-via-plugin-store)\n\n### Installation via Console Commands\n\nTo install the **Google Maps** plugin via the console, follow these steps:\n\n1. Open your terminal and go to your Craft project:\n\n```sh\ncd /path/to/project\n```\n\n2. Then tell Composer to load the plugin:\n\n```sh\ncomposer require doublesecretagency/craft-googlemaps\n```\n\n3. Then tell Craft to install the plugin:\n\n```sh\n./craft plugin/install google-maps\n```\n\n\u003eAlternatively, you can visit the **Settings \u003e Plugins** page to finish the installation. If installed via the control panel, you will automatically be redirected to configure the plugin after installation is complete.\n\nOnce installed, you will need to [add Google API keys...](https://plugins.doublesecretagency.com/google-maps/getting-started/api-keys/)\n\n---\n\n## Simple Code Examples\n\n**These examples barely scratch the surface of what is possible!**\n\nFor complete details, check out the [official plugin documentation...](https://plugins.doublesecretagency.com/google-maps/)\n\n### Adding a Dynamic Map\n\n```twig\n{# Get the entries #}\n{% set entries = craft.entries.section('locations').all() %}\n\n{# Place them on a dynamic map #}\n{{ googleMaps.map(entries).tag() }}\n```\n\n\u003e [Full dynamic maps docs are here...](https://plugins.doublesecretagency.com/google-maps/dynamic-maps/)\n\n### Adding a Static Map\n\n```twig\n{# Get the entries #}\n{% set entries = craft.entries.section('locations').all() %}\n\n{# Place them on a static map #}\n{{ googleMaps.img(entries).tag() }}\n```\n\nOr use the `src` attribute directly...\n\n```twig\n{# Get only the image URL of a static map #}\n{% set src = googleMaps.img(entries).src() %}\n\n{# Display the image tag manually #}\n\u003cimg src=\"{{ src }}\"\u003e\n```\n\n\u003e [Full static maps docs are here...](https://plugins.doublesecretagency.com/google-maps/static-maps/)\n\n### Conducting a Proximity Search\n\n```twig\n{# Set the geocoding lookup target #}\n{% set target = '123 Main St' %}\n\n{# Get a set of entries, sorted by closest to target #}\n{% set entries = craft.entries.myAddressField(target).orderBy('distance').all() %}\n```\n\n\u003e [Full proximity search docs are here...](https://plugins.doublesecretagency.com/google-maps/proximity-search/)\n\n### Conducting a Geocoding Address Lookup\n\n```twig\n{# Set the geocoding lookup target #}\n{% set target = '123 Main St' %}\n\n{# Get a set of geocoding results #}\n{% set results = googleMaps.lookup(target).all() %}\n```\n\n\u003e [Full geocoding docs are here...](https://plugins.doublesecretagency.com/google-maps/geocoding/)\n\n### Geolocating Visitors\n\n```twig\n{# Get location data based on each visitor's IP address #}\n{% set visitor = googleMaps.visitor %}\n```\n\n\u003e [Full geolocation docs are here...](https://plugins.doublesecretagency.com/google-maps/geolocation/)\n\n---\n\n## Further Reading\n\nIf you haven't already, flip through the [complete plugin documentation](https://plugins.doublesecretagency.com/google-maps/). The examples above are just the tip of the iceberg, there is so much more that is possible!\n\nAnd if you have any remaining questions, feel free to [reach out to us](https://www.doublesecretagency.com/contact) (via Discord is preferred).\n\n**On behalf of Double Secret Agency, thanks for checking out our plugin!** 🍺\n\n\u003cp align=\"center\"\u003e\n    \u003cimg width=\"130\" src=\"https://www.doublesecretagency.com/resources/images/dsa-transparent.png\" alt=\"Logo for Double Secret Agency\"\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoublesecretagency%2Fcraft-googlemaps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoublesecretagency%2Fcraft-googlemaps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoublesecretagency%2Fcraft-googlemaps/lists"}