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 に答える