我已成功设置VichGeographicalBundle以在 Google 地图中显示一堆地点。一切正常,除了点击时不显示的信息窗口。
$this->setShowInfoWindowsForMarkers(true);
已设置但似乎不起作用。
有任何想法吗 ?
编辑:
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') }}
配置.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"
生成的 HTML 代码:http {{ vichgeo_map('allShops') }}
: //pastebin.com/jqvzG67N