https://github.com/benjamminf/craft-coordinates
A twig filter for Craft CMS that gets the latitude and longitude from an address
https://github.com/benjamminf/craft-coordinates
craft-plugin craftcms geolocation
Last synced: about 1 year ago
JSON representation
A twig filter for Craft CMS that gets the latitude and longitude from an address
- Host: GitHub
- URL: https://github.com/benjamminf/craft-coordinates
- Owner: benjamminf
- License: mit
- Created: 2015-07-02T11:13:02.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2016-09-21T05:41:01.000Z (almost 10 years ago)
- Last Synced: 2025-03-26T16:39:14.940Z (over 1 year ago)
- Topics: craft-plugin, craftcms, geolocation
- Language: PHP
- Size: 13.7 KB
- Stars: 24
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Coordinates
Twig filters for Craft CMS that finds the latitude and longitude from an address.
The plugin fetches the coordinates through the Google Maps API *without* the need for an API key. Simply install the plugin and being using it.
## How to use
```twig
{{ 'Flinders St, Melbourne VIC 3000' | coordinates }}
{# Outputs '-37.8182609,144.9648863' #}
{{ 'flinders STREET melbourne, Victoria, 3000' | formatAddress }}
{# Outputs 'Flinders Street, Melbourne VIC 3000, Australia' #}
{% set address = addressData('Flinders St, Melbourne VIC 3000') %}
{{ address.coordinates }} {# Outputs '-37.8182609,144.9648863' #}
{{ address.formattedAddress }} {# Outputs 'Flinders Street, Melbourne VIC 3000, Australia' #}
{{ address.latitude }} {# Outputs -37.8182609 #}
{{ address.longitude }} {# Outputs 144.9648863 #}
{{ address.url }} {# Outputs 'https://www.google.com/maps/place/Flinders...' #}
{% for label, part in address.parts %}
{{ label }} {# Outputs 'country' | 'state' | ... #}
{{ part }} {# Outputs 'Australia' | 'Victoria' | ... #}
{% endfor %}
```
## API
### Templates
Filter | Description
-------------------------------------------------|------------------------------------------------------------------
`coordinates(separator=',')` or `coords(sep...)` | Returns the latitude and longitude, separated by a custom string.
`latitude` or `lat` | Returns the latitude as a number.
`longitude` or `lng` | Returns the longitude as a number.
`formatAddress` | Returns a standardised address format.
Function | Description
-----------------------|--------------------------------------------------------------------
`addressData(address)` | Returns a coordinates model instance from an address
### CoordinatesModel
TODO
## Changelog
#### v1.3.0
- `Added` Added ability to extract parts of an address (country, state, etc.)
- `Added` Added URL parameter to coordinates model that links an address or set of coordinates to Google Maps
- `Fixed` Fixed name of `addressData` function
#### v1.2.0
- `Added` Added Twig functions for getting center and average coordinates for a list of coordinates
- `Improved` `addressData()` now returns a Coordinates model rather than a plain object
- `Improved` Refactored code and improved API
#### v1.1.0
- `Added` Added shorthand filters `lat`, `lng`, and `coords`, as well as a `addressData()` function
- `Added` Added release feed to the plugin
- `Improved` Improved internal caching so there is no need for `{% cache %}` tags
- `Improved` Refactored code
#### v1.0.1
- `Improved` Added minor caching so that address data is only requested once per template render.
#### v1.0.0
Initial release