/** * {@inheritdoc} */ public function loadData(Item $item, FeatureCollection $featureCollection, DefinitionMapper $mapper, $parentId, Filter $filter = null, $deferred = false) { if ($this->model->deferred == $deferred) { $marker = $this->buildMarker($item, $parentId); if ($this->layerModel->boundsMode === 'fit' && $filter instanceof BboxFilter) { if (!$filter->getBounds()->contains($marker->getLatLng())) { return; } } $feature = $mapper->convertToGeoJsonFeature($marker, $this->model); if ($feature) { $featureCollection->addFeature($feature); } } }
/** * {@inheritdoc} */ public function handleGeoJson(\Model $model, DefinitionMapper $mapper, Filter $filter = null) { $feature = new FeatureCollection(); $collection = $this->loadMarkerModels($model, $filter); if ($collection) { foreach ($collection as $item) { $marker = $mapper->handle($item); $point = $mapper->convertToGeoJsonFeature($marker, $item); if ($point) { $feature->addFeature($point); } } } return $feature; }
/** * {@inheritdoc} */ public function loadLayers(Item $item, GeoJson $dataLayer, DefinitionMapper $mapper, Filter $filter = null) { if ($this->model->referenceType !== 'reflayer' && $this->model->deferred) { return; } $definition = $this->buildDefinition($item); if (!$definition) { return; } if ($definition instanceof ConvertsToGeoJsonFeature && $definition->convertsFullyToGeoJson()) { $feature = $mapper->convertToGeoJsonFeature($definition, $this->model); if ($feature) { $dataLayer->addData($feature); } } else { $dataLayer->addLayer($definition); } }
/** * {@inheritdoc} */ public function handleGeoJson(\Model $model, DefinitionMapper $mapper, Filter $filter = null) { $definition = new FeatureCollection(); $collection = $this->loadVectorModels($model); if ($collection) { foreach ($collection as $item) { $vector = $mapper->handle($item); $feature = $mapper->convertToGeoJsonFeature($vector, $item); if ($feature) { $definition->addFeature($feature, true); } } } return $definition; }