数据库
首页 > 数据库> > CakePHP和GoogleMapsHelper:如何从数据库中加载标记?

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

作者:互联网

我将CakePHPGoogleMapsHelper结合使用,以在我的应用程序中包含Google Map.

为了在我的地图上添加标记,文档说我应该使用以下语法,其中三个变量是地图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; ?>

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

解决方法:

您只是忘了回显标记.请注意示例中的短标记<?=.这是执行<?php回显的简短(有些丑陋)的方法.另外,您无需像执行操作那样过多地打开/关闭PHP标签.它可以全部放在一个块中.最后,您要在options数组中声明一个重复的键纬度,您可能通过Post模型字段名称的外观表示经度.因此,所有这些放在一起,应该可以解决问题:

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

标签:google-maps,google-maps-api-3,cakephp,cakephp-2-4,php
来源: https://codeday.me/bug/20191122/2059326.html