/** * Returns a new instance of a layer class for the provided layer type to create * an actual layer definition based on the basic layer type class. * * @since 3.0 * * @param string $type name of the basic layer type. * @param array $properties definition describing the layer characteristics. * @param string $name optional name to identify this particular layer within a * group of layers within a layer page. If not set, an increasing numeric * name will be assigned. * * @return MapsLayer */ public static function newLayerFromDefinition($type, array $properties, $name = null) { $class = MapsLayerTypes::getTypesClass($type); if ($class !== null) { return new $class($properties, $name); } else { throw new exception("There is no layer class for layers of type \"{$type}\"."); } }
/** * Registeres the layer. * * @since 0.7.2 */ public static function register() { MapsLayerTypes::registerLayerType('kml', __CLASS__, 'openlayers'); return true; }
/** * Responsible for actual output on the layer page which gives an overview of the layer definition. * * @since 3.0 * * @param MapsLayer * * @return string */ public function renderLayerInfo(MapsLayer $layer) { global $wgLang; // appropriate layer header: if ($layer->getName() !== null) { // if layer with same name is defined on same page already: if ($this->getLayerStore()->getLayerByName($layer->getName()) !== null) { return $this->errorbox(wfMessage('maps-layerdef-equal-layer-name', $layer->getName())->inContentLanguage()->text()); } $outHeader = wfMessage('maps-layer-of-type-and-name', $layer->getType(), $layer->getName())->inContentLanguage()->text(); } else { $outHeader = wfMessage('maps-layer-of-type', $layer->getType())->inContentLanguage()->text(); } $outHeader = "<span class=\"mapslayerhead\">{$outHeader}</span>"; // info message about which services are supporting the layer(-type): $supportedServices = MapsLayerTypes::getServicesForType($layer->getType()); $outServices = '<span class="mapslayersupports">' . wfMessage('maps-layer-type-supported-by', $wgLang->listToText($supportedServices), count($supportedServices))->inContentLanguage()->escaped() . '</span>'; $outTable = $this->getLayerDefinitionTable($layer); return Html::rawElement('div', array('class' => 'mapslayer' . ($layer->isOk() ? '' : ' mapslayererror')), $outHeader . $outServices . $outTable); }
/** * Convenient function for getting mapping services supported by this layer. * * @since 3.0 * * @return string[] */ public final function getSupportedServices() { return MapsLayerTypes::getServicesForType($this->getType()); }