# Geolocation

A map-based field to pick a precise location and return its coordinates (latitude and longitude)

Class: Code16\Sharp\Form\Fields\SharpFormGeolocationField

Example

# Configuration

# setDisplayUnitDegreesMinutesSeconds()

Sets the coordinate display to be degrees-minutes-second, eg: 17°10'16'', 89°17'45''

# setDisplayUnitDecimalDegrees()

Sets the coordinate display to be decimal degrees, eg: 0.36666667, 17.15722222. This is the default.

# setInitialPosition(float $lat, float $lng)

# clearInitialPosition()

Sets the initial position of the edit map, when there in no marker yet.

# setBoundaries(float $northEastLat, float $northEastLng, float $southWestLat, float $southWestLng)

# clearBoundaries()

If needed, set boundaries to the edit map, providing a north-east and a south-west position.

# setZoomLevel(int $zoomLevel)

Set the map zoom level, from 1 (the World) ou 25. Default is 10.

# setMapsProvider(string $provider, array $options = [])

You can choose between 2 providers for the Maps display:

  • "gmaps" for Google Maps (requires an API key, see below)
  • "osm" for Open Street Maps

# setGeocoding(bool $geocoding = true)

Authorize geocoding, meaning enter an address and get back the coordinates. Default is false. May require an API key depending on the provider (see below).

# setGeocodingProvider(string $provider, array $options = [])

You can choose between 2 providers for geocoding:

  • "gmaps" for Google Maps (requires an API key, see below)
  • "osm" for Open Street Maps (Nominatim)

# setApiKey(string $apiKey)

If you use Google Maps as provider, for maps ou geocoding, you'll need a valid Google Maps Api key. This method will set the API key for both maps and geocoding.

# setGeocodingApiKey(string $apiKey)

This method will set the API key for geocoding only.

# setMapsApiKey(string $apiKey)

This method will set the API key for maps only.

# Formatter

  • toFront: expects a string with comma-separated decimal degrees values (0.36666667,17.15722222 for instance).
  • fromFront: returns a string with the same format than toFront.