Skip to content

Carbon Fields extension, that adds a Map Yandex field type

License

Notifications You must be signed in to change notification settings

yunusga/carbon-field-map-yandex

Repository files navigation

Carbon Fields Map Yandex

The map field provides a Yandex-powered map with an address search field for Carbon Fields.

Field::make( 'map_yandex', 'crb_map', __( 'Yandex Map' ) )

Install via Composer

composer require yunusga/carbon-field-map-yandex

Information

The field stores several pieces of related information:

Atribute Description Value Type Value
'value' Latitude & Longitude (string) 11.370946,142.591472
'lat' Latitude (float) 11.370946
'lng' Longitude (float) 142.591472
'address' Address (string) The lowest point of the Mariana Trench
'zoom' Zoom level (int) 4

Yandex Maps JS Key setup

As of October 11, 2018, Yandex requires users to generate an API key in order to use the Yandex Maps API: https://yandex.ru/blog/mapsapi/novye-pravila-dostupa-k-api-kart?from=club

You can get your API key here: https://developer.tech.yandex.ru/services/3/

Once you're ready with the process of generating a key, you'll need to provide the key to Carbon Fields through a filter:

/**
 * Provide the Yandex Maps API key to Carbon Fields
 * 
 * @param string $key Yandex JS API key.
 */
function crb_get_yandex_maps_api_key( $key ) {
	return 'your key goes here';
}
add_filter( 'carbon_fields_map_yandex_field_api_key', 'crb_get_yandex_maps_api_key' );

Config methods

set_position( $lat, $lng, $zoom )

Set the default position on the map specified by $lat and $lng and the default zoom level to $zoom (zoom 0 corresponds to a map of the Earth fully zoomed out).

Field::make( 'map_yandex', 'crb_company_location', __( 'Location' ) )
	->set_help_text( __( 'drag and drop the pin on the map to select location' ) )

Usage

To get all the location data as an array, you can use the map_yandex type in the retrieval functions. Example:

// Get the location data.
$map_yandex = carbon_get_post_meta( $post_id, $field_name );

Value Format

array(
	'value'   => '11.370946,142.591472',
	'lat'     => 11.370946,
	'lng'     => 142.591472,
	'zoom'    => 4,
	'address' => 'The lowest point of the Mariana Trench',
)