0

如何在 symfony2 和VichGeographicalBundle中设置自定义标记?

我的地图文件构造函数:

 public function __construct(EntityManager $em, $iconGenerator)
{
    parent::__construct();

    // configure your map in the constructor 
    // by setting the options

    $this->setShowZoomControl(true);
    $this->setZoom(15);
    $this->setAutoZoom(false);
    $this->setContainerId('map_canvas');
    $this->setWidth(630);
    $this->setHeight(200);
}

我的树枝调用:

{{ vichgeo_map_for('showShop',shop) }}

一切正常,除了我找不到如何将其设置为自定义图像(image/custom.png)的标记。

我试图在 config.yml 中注入服务,但我的知识太差了。

4

1 回答 1

0

尝试类似:

<?php

namespace YourBundle\Map\Marker\Icon;

use Vich\GeographicalBundle\Map\Marker\Icon\IconGeneratorInterface;
use ..\Shop; // set the correct path

class CustomDefaultIconGenerator implements IconGeneratorInterface
{
    /**
     * {@inheritDoc}
     */
    public function generateIcon($obj)
    {
        if ($obj instanceof Shop) {
            return '/images/custom.gif'; // make sure the path is correct
        }
    }
}

在你的配置中:

services:
    ...
    vich_geographical.icon_generator.default:
        class: YourBundle\Map\Marker\Icon\CustomDefaultIconGenerator
        public: false

但看起来捆绑中的标记支持有点不完整。必须有更好的方法来做到这一点;)

于 2013-01-08T12:31:18.807 回答