php – 谷歌地图infowindow没有显示在使用VichGeographicalBundle的Symfony2点击

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 谷歌地图infowindow没有显示在使用VichGeographicalBundle的Symfony2点击脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我已成功设置 VichGeographicalBundle以在GOOGLE地图中显示一堆地点.一切正常,除了点击时没有显示的信息窗口.

$这 – > setShowInfoWindowsForMarkers(真);设置但似乎不起作用.

有任何想法吗 ?

编辑:

class allShopsMap extends Map
{
    /**
     * Constructs a new instance of LocationMap.
     */
    public function __construct(EntITyManager $em)
    {
        parent::__construct();

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

        $this->setShowZoomControl(true);
        $this->setZoom(13);
        $this->setAutoZoom(false);
        $this->setContainerId('map_canvas');
        $this->setWidth(980);
        $this->setHeight(360);
        $this->setShowInfoWindowsForMarkers(true);
        $this->setcenter(23.232323,23.232323);
        $this->setShowMapTyPEControl(true);

        $query = $em->createQuery("SELECT st
                       From acme\ShopBundle\Entity\Shop sh 
                       WHERE sh.published = 1 ");
        $shops = $query->getResult();

        foreach ($shops as $shop) {
            $this->addMarker(new MapMarker($shop->getLatitude(),$shop->getLongitude(),$icon='images/map_marker.png'));
        }
    }
}

从树枝模板调用

{{ vichgeo_map('allShops') }}

config.yML

vich_geographical:
    db_driver: orm 
    query_service: vich_geographical.query_service.default
    map_renderer: vich_geographical.map_renderer.google
    templating:
        engine: twig
        info_window: msgrShopBundle:Map:infoWindow.html.twig

services:
    msgr.map.allShops:
        class: msgr\ShopBundle\Map\allShopsMap  
        tags:
           -  { name: vichgeo.map,alias: allShops }
        arguments: 
            entityManager: "@doctrine.orm.entity_manager"

由{{vichgeo_map(‘allShops’)}}生成HTML代码http://pastebin.com/jqvzG67N

解决方法

试试这个:

class allShopsMap extends Map
{
    /**
     * Constructs a new instance of LocationMap.
     */
    public function __construct(EntityManager $em,$infoWindowBuilder)
    {
        parent::__construct();

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

        $this->setShowZoomControl(true);
        $this->setZoom(13);
        $this->setAutoZoom(false);
        $this->setContainerId('map_canvas');
        $this->setWidth(980);
        $this->setHeight(360);
        $this->setShowInfoWindowsForMarkers(true);
        $this->setCenter(23.232323,23.232323);
        $this->setShowMapTypeControl(true);

        $query = $em->createQuery("SELECT st
                       From acme\ShopBundle\Entity\Shop sh 
                       WHERE sh.published = 1 ");
        $shops = $query->getResult();

        foreach ($shops as $shop) {
            $marker = new MapMarker($shop->getLatitude(),$icon='images/map_marker.png');
            $marker->setInfoWindow($infoWindowBuilder->build($marker)); 
            $this->addMarker($marker);
        }
    }
}

infoWindowBuilder是容器中可用的vich_geographical.info_window_builder服务.

修改您的配置:

services:
    msgr.map.allShops:
        class: msgr\ShopBundle\Map\allShopsMap  
        tags:
           -  { name: vichgeo.map,alias: allShops }
        arguments: 
            entityManager: "@doctrine.orm.entity_manager" 
            infoWindowBuilder: "@vich_geographical.info_window_builder"

脚本宝典总结

以上是脚本宝典为你收集整理的php – 谷歌地图infowindow没有显示在使用VichGeographicalBundle的Symfony2点击全部内容,希望文章能够帮你解决php – 谷歌地图infowindow没有显示在使用VichGeographicalBundle的Symfony2点击所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。