egeloen / ivory-google-map只加载一张地图

时间:2014-09-20 07:48:22

标签: symfony

我正在使用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 %}

一切都很好,但地图仅针对第一位用户展示。我错过了什么?

1 个答案:

答案 0 :(得分:0)

尝试为每个地图提供唯一的容器ID。我使用这样的东西:

$map->setHtmlContainerId('map_canvas_'.md5($address));

其中$ address是一个简单的地址字符串。