"", 'English' => 'en', 'Arabic' => 'ar', 'Basque' => 'eu', 'Bengali' => 'bn', 'Bulgarian' => 'bg', 'Catalan' => 'ca', 'Chinese (Simplified)' => 'zh-CN', 'Chinese (Traditional)' => 'zh-TW', 'Croatian' => 'hr', 'Czech' => 'cs', 'Danish' => 'da', 'Dutch' => 'nl', 'English (Australian)' => 'en-AU', 'English (Great Britain)' => 'en-GB', 'Farsi' => 'fa', 'Filipino' => 'fil', 'Finnish' => 'fi', 'French' => 'fr', 'Galician' => 'gl', 'German' => 'de', 'Greek' => 'el', 'Gujarati' => 'gu', 'Hebrew' => 'iw', 'Hindi' => 'hi', 'Hungarian' => 'hu', 'Indonesian' => 'id', 'Italian' => 'it', 'Japanese' => 'ja', 'Kannada' => 'kn', 'Korean' => 'ko', 'Latvian' => 'lv', 'Lithuanian' => 'lt', 'Malayalam' => 'ml', 'Marathi' => 'mr', 'Norwegian' => 'no', 'Polish' => 'pl', 'Portuguese' => 'pt', 'Portuguese (Brazil)' => 'pt-BR', 'Portuguese (Portugal)' => 'pt-PT', 'Romanian' => 'ro', 'Russian' => 'ru', 'Serbian' => 'sr', 'Slovak' => 'sk', 'Slovenian' => 'sl', 'Spanish' => 'es', 'Swedish' => 'sv', 'Tagalog' => 'tl', 'Tamil' => 'ta', 'Telugu' => 'te', 'Thai' => 'th', 'Turkish' => 'tr', 'Ukrainian' => 'uk', 'Vietnamese' => 'vi'); private $urlScript, $urlGoogleScript, $mapData, $settingsData; private $defaultLocation = array("lat"=>"-33.8688","lng"=>151.2195); private $defaultZoom = 13, $isInited = false; private $urlStatic; private static $serial = 0; /** * the constructor */ public function __construct(){ $this->apiKey = "yourkey"; //get from general settings later $this->apiKey = trim($this->apiKey); if(empty($this->apiKey)) $this->apiKey = null; } /** * get API key, default or private */ private function getAPIKey(){ if(!empty($this->apiKey)) return($this->apiKey); return($this->defaultAPIKey); } /** * init scripts url */ private function initScripts(){ $rand = rand(10,999999); $this->urlScript = GlobalsUC::$urlPlugin."js/unitecreator_map_picker.js?rand=".$rand; $apiKey = $this->getAPIKey(); $this->urlGoogleScript = "https://maps.googleapis.com/maps/api/js?key={$apiKey}&libraries=places"; $this->urlStatic = "https://maps.googleapis.com/maps/api/staticmap?key={$apiKey}"; } /** * init */ private function initSettings(){ $settings = new UniteCreatorSettings(); $settings->addSap(esc_html__("Size and Location", "unlimited-elements-for-elementor"), "size_location"); $settings->addTextBox("width","100%",esc_html__("Map Width","unlimited-elements-for-elementor"),array("unit"=>"px or %")); $settings->addTextBox("height","300",esc_html__("Map Height","unlimited-elements-for-elementor"),array("unit"=>"px or %")); $settings->addHr(); $settings->addTextBox("location", "", "Location"); $params = array(UniteSettingsUC::PARAM_ADDTEXT => ""); $settings->addButton("button_my_location", esc_html__("Goto My Location", "unlimited-elements-for-elementor"), UniteSettingsUC::PARAM_NOTEXT, $params); //--------- add marker $settings->addSap(esc_html__("Marker", "unlimited-elements-for-elementor"), "marker"); $arrMarkerType = array(); $arrMarkerType["Default Marker"] = "default"; $arrMarkerType["No Marker"] = "no"; $arrMarkerType["Shape from Icon"] = "icon"; $arrMarkerType["Shape from Image"] = "image"; $settings->addSelect("marker_type", $arrMarkerType, "Marker Type","default"); $iconParams = array("icons_type"=>"map"); $settings->addIconPicker("icon","","Marker Icon", $iconParams); $settings->addControl("marker_type", "icon", "show", "icon"); $settings->addImage("marker_image","",esc_html__("Marker Image","unlimited-elements-for-elementor")); $settings->addControl("marker_type", "marker_image", "show", "image"); $settings->addSap(esc_html__("Style", "unlimited-elements-for-elementor"), "style"); $arrStyles = array( "[Standard]"=>"", "Silver"=>"silver", "Retro"=>"retro", "Dark"=>"dark", "Night"=>"night", "Aubegine"=>"aubegine", "Custom"=>"custom" ); $settings->addSelect("style", $arrStyles, "Map Style"); //add custom style textarea $params = array(); $params[UniteSettingsUC::PARAM_ADDTEXT] = ""; $settings->addTextArea("style_json", "", "Custom Style", $params); $settings->addStaticText("Paste here map style from Google Map Styler or Snazzy Maps"); $settings->addControl("style", "style_json", "show", "custom"); //add advanced $settings->addHr(); //--- map type $arrMapType = array( "Roadmap"=> "roadmap", "Satellite"=> "satellite", "Hybrid"=> "hybrid", "Terrain"=> "terrain" ); $settings->addSelect("map_type", $arrMapType, "Map Type", "roadmap"); $settings->addSap(esc_html__("Language and Controls", "unlimited-elements-for-elementor"), "language_controls"); //--- language $settings->addSelect("language", $this->arrLangs, esc_html__("Language", "unlimited-elements-for-elementor"), ""); $settings->addHr(); $settings->addRadioBoolean("zoomControl", "Show Zoom Control"); $settings->addRadioBoolean("mapTypeControl", "Show Type Control"); $settings->addRadioBoolean("streetViewControl", "Show Street View Control"); $settings->addRadioBoolean("fullscreenControl", "Show Full Screen Control"); //set settings data if(!empty($this->settingsData)) $settings->setStoredValues($this->settingsData); $this->settingsData = $settings->getArrValues(); $this->settings = $settings; $this->settingsOutput = new UniteSettingsOutputSidebarUC(); $this->settingsOutput->init($this->settings); } /** * put parse icons html from google earty icons page */ private function putParseIconsHtml(){ ?>
mapData; $addHtml = ""; if(!empty($data)) $addHtml = UniteFunctionsUC::jsonEncodeForHtmlData($data,"mapdata"); $addOverlay = false; if(empty($this->apiKey) || $this->apiKey === $this->defaultAPIKey) $addOverlay = true; $urlGeneralSettings = HelperUC::getViewUrl(GlobalsUC::VIEW_SETTINGS); $urlGeneralSettings .= "#tab=fields_settings"; $linkGeneralSettings = HelperHtmlUC::getHtmlLink($urlGeneralSettings, esc_html__("General Settings","unlimited-elements-for-elementor"),"","",true); ?>
.

You can create your API key in google map developes page
settingsOutput->draw("uc_settings_map", true); ?>
class="uc-mappicker-wrapper">
getUrlScriptAPI(); $apiKey = $this->getAPIKey(); ?> mapData; if(empty($data)) $data = array(); if(!isset($data["center"])) $data["center"] = $this->defaultLocation; if(!isset($data["zoom"])) $data["zoom"] = $this->defaultZoom; return($data); } /** * get map date for client side */ private function getMapDataClientSide(){ $data = $this->getMapData(); $mapData = array(); $mapData["center"] = $data["center"]; $mapData["zoom"] = $data["zoom"]; return($mapData); } /** * get default iframe url */ private function getUrlStaticMap($width, $height){ $this->init(); $url = $this->urlStatic; $url .= "&size={$width}x{$height}"; $data = $this->getMapData(); //add center $location = UniteFunctionsUC::getVal($data, "center"); if($location){ $lat = $location["lat"]; $lng = $location["lng"]; $url .= "¢er={$lat},{$lng}"; } //add zoom $zoom = UniteFunctionsUC::getVal($data, "zoom"); if($zoom) $url .= "&zoom={$zoom}"; return($url); } /** * get script API url */ private function getUrlScriptAPI($callback = ""){ $url = $this->urlGoogleScript; if(!empty($callback)) $url .= "&callback=$callback"; $language = UniteFunctionsUC::getVal($this->mapData, "lang"); if(!empty($language)) $url .= "&language=$language"; return($url); } /** * set map and settings data */ public function setData($data){ if(empty($data)) return(false); $this->mapData = UniteFunctionsUC::getVal($data, "map"); $this->settingsData = UniteFunctionsUC::getVal($data, "settings"); } /** * get map data */ public function getStoredMapData(){ return($this->mapData); } /** * init all the objects */ private function init(){ if($this->isInited == true) return(false); $this->initSettings(); $this->initScripts(); $this->isInited = true; } /** * put html of picker input */ public function putPickerInputHtml(){ $this->init(); $status = esc_html__("No Map Chosen", "unlimited-elements-for-elementor"); $width = 220; $height = 100; $urlImage = $this->getUrlStaticMap($width, $height); ?>
init(); $this->outputHtml(); $this->outputScripts(); } /** * get map output id */ private function getMapOutputID(){ self::$serial++; $random = UniteFunctionsUC::getRandomString(5,true); $mapID = "uc_googlemap_output_{$random}_".self::$serial; return($mapID); } /** * get some setting */ private function getSetting($name){ if(empty($this->settingsData)) UniteFunctionsUC::throwError("Settigns data is empty"); if(!isset($this->settingsData[$name])) UniteFunctionsUC::throwError("Setting with name: $name not found"); $value = $this->settingsData[$name]; return($value); } /** * put map client side */ private function putHtmlClientSide(){ $mapID = $this->getMapOutputID(); $functionName = "initMap_".$mapID; $url = $this->getUrlScriptAPI($functionName); //set size $width = $this->getSetting("width"); $height = $this->getSetting("height"); $width = UniteFunctionsUC::normalizeSize($width); $height = UniteFunctionsUC::normalizeSize($height); $css = "#{$mapID}{ width:{$width};height:{$height} }"; $mapDataEncode = $this->getMapDataClientSide(); $jsonOptions = json_encode($mapDataEncode); $mapData = $this->getMapData(); //marker $marker = UniteFunctionsUC::getVal($mapData, "marker"); $putMarker = true; $isMarkerVisible = UniteFunctionsUC::getVal($marker, "isvisible"); if($isMarkerVisible === false) $putMarker = false; if($putMarker){ $markerLat = UniteFunctionsUC::getVal($marker, "lat"); $markerLng = UniteFunctionsUC::getVal($marker, "lng"); if(empty($markerLat)){ $markerLat = $this->defaultLocation["lat"]; $markerLng = $this->defaultLocation["lng"]; } $markerIcon = UniteFunctionsUC::getVal($marker, "icon"); if($markerIcon) $markerIcon = HelperUC::URLtoFull($markerIcon); } $style = UniteFunctionsUC::getVal($mapData, "style"); $style = trim($style); $style = str_replace("\n", "", $style); $style = str_replace("\r", "", $style); $mapTypeID = UniteFunctionsUC::getVal($mapData, "maptypeid"); $lang = UniteFunctionsUC::getVal($mapData,"lang"); ?>
init(); ob_start(); $this->putHtmlClientSide(); $content = ob_get_contents(); ob_end_clean(); return($content); } }