我正在使用egeloen / ivory-google-map库来显示每个注册用户的地图。但是在所有用户列表中只显示一个地图。
这是我的方法:
public function findCompaniesAction() {
$em = $this->getDoctrine()->getManager();
$companies = $em->createQueryBuilder()
->select('b')
->from('RFQIronilBundle:User', 'b')
->where('b.acc_type = 1')
->getQuery()
->getResult();
foreach ($companies as $key => $company) {
$map = $this->get('ivory_google_map.map');
$map->setMapOption('mapTypeId', MapTypeId::ROADMAP);
$map->setMapOption('mapTypeId', 'roadmap');
$company->map = $map;
}
return $this->render('RFQIronilBundle:Default:find-companies.html.twig', array(
'companies' => $companies
));
}
在我看来我使用:
{% for companies in companies %}
{{ google_map_container(companies.map) }}
{{ google_map_js(companies.map) }}
{% endfor %}
一切都很好,但地图仅针对第一位用户展示。我错过了什么?
答案 0 :(得分:0)
尝试为每个地图提供唯一的容器ID。我使用这样的东西:
$map->setHtmlContainerId('map_canvas_'.md5($address));
其中$ address是一个简单的地址字符串。