CakePHP和GoogleMapsHelper:如何从我的数据库中加载标记?

时间:2013-12-10 22:47:19

标签: php google-maps cakephp google-maps-api-3 cakephp-2.4

我正在使用GoogleMapsHelper与CakePHP在我的应用中添加Google地图。

为了向地图添加标记,文档说我应该使用以下语法,其中三个变量是地图ID,标记ID和标记位置。

<?= $this->GoogleMap->addMarker("map_canvas", 1, array('latitude' => 40.69847, 'longitude' => -73.9514)); ?>

考虑到这一点,我一直在尝试迭代我的数据库并显示我的所有点,但它没有做任何事情:这是代码,每个帖子都有(lat)和(lng)。

<?php 
    foreach ($posts as $post): ?>

        <?php $this->GoogleMap->addMarker("map_canvas", $post['Post']['id'], array('latitude' => $post['Post']['lat'], 'latitude' => $post['Post']['lng'])); ?>

<?php endforeach; ?>

如何将这些条目作为标记加载到我的地图中? 提前谢谢!

1 个答案:

答案 0 :(得分:3)

你只是忘记回应标记。请注意示例中的短标记<?=。这是做<?php echo的简短(有点难看)的方式。此外,没有必要像你一样打开/关闭PHP标签。它可以全部放在一个块中。最后,您在选项数组中声明了一个重复键latitude,您可能通过Post模型的字段名称来表示longitude。总而言之,这应该可以解决问题:

<?php
foreach ($posts as $post):
    echo $this->GoogleMap->addMarker(
        'map_canvas',
        $post['Post']['id'],
        array(
            'latitude' => $post['Post']['lat'],
            'longitude' => $post['Post']['lng']
        )
    );
endforeach;