/**
  * {@inheritdoc}
  */
 protected function build(Definition $definition, \Model $model, DefinitionMapper $mapper, Filter $filter = null, Definition $parent = null)
 {
     if ($definition instanceof GeoJson) {
         $collection = $this->loadVectorModels($model);
         if ($model->boundsMode) {
             $definition->setOption('boundsMode', $model->boundsMode);
         }
         if ($collection) {
             foreach ($collection as $item) {
                 $vector = $mapper->handle($item);
                 $feature = $mapper->convertToGeoJsonFeature($vector, $item);
                 if ($feature) {
                     $definition->addData($feature, true);
                 }
             }
         }
         $this->addCallbacks($definition, $model);
     }
 }
 /**
  * {@inheritdoc}
  */
 protected function build(Definition $definition, \Model $model, DefinitionMapper $mapper, Filter $filter = null, Definition $parent = null)
 {
     if ($definition instanceof GeoJson) {
         if ($model->boundsMode) {
             $definition->setOption('boundsMode', $model->boundsMode);
         }
         $collection = $this->loadMarkerModels($model);
         if ($collection) {
             foreach ($collection as $item) {
                 $marker = $mapper->handle($item);
                 $point = $mapper->convertToGeoJsonFeature($marker, $item);
                 if ($point) {
                     $definition->addData($point, true);
                 }
             }
         }
         if ($model->pointToLayer) {
             $definition->setPointToLayer(new Expression($model->pointToLayer));
         }
     }
 }