Esempio n. 1
0
 /**
  * Create a server from an array of LayerDefinitions
  *
  * @param LayerDefinition[] $definitions
  * @return LayarPOIServer
  */
 public function createLayarPOIServerFromLayerDefinitions(array $definitions)
 {
     $result = new LayarPOIServer();
     foreach ($definitions as $definition) {
         $layer = new Layer($definition->name, $this->developerId, $this->developerKey);
         if ($definition->getSourceType() == LayerDefinition::DSN) {
             $poiConnector = new $definition->connector($definition->source["dsn"], $definition->source["username"], $definition->source["password"]);
         } else {
             if ($definition->getSourceType() == LayerDefinition::FILE) {
                 $poiConnector = new $definition->connector($definition->source);
             }
         }
         foreach ($definition->connectorOptions as $optionName => $option) {
             $poiConnector->setOption($optionName, $option);
         }
         // for WebApi: pass full definition object
         if (method_exists($poiConnector, 'initDefinition')) {
             $poiConnector->initDefinition($definition);
         }
         $layer->setPOIConnector($poiConnector);
         $result->addLayer($layer);
     }
     return $result;
 }