在良好的地图标记中添加多个列表



我正在为房地产开发一个网络应用程序,我想在列表页面上显示一个地图,上面有多个标记,显示同一区域的多个房屋/房产。我在yii2/php这样做.我需要建议我该怎么做?我已经为每个家庭/物业添加了地图,

出于类似的目的,我使用2amigos/yii2-google-maps-library(在我的情况下,它不是房子,而是某种"设施")。

更新:我为每个步骤提供了具体的代码示例。首先,您必须了解要在地图中放置元素,您必须创建LatLang对象。您创建一个简单的坐标,指定其纬度和经度坐标(Google地图为您提供了正确的格式),即:$coord = new LatLng(['lat' => 49.403916, 'lng' => 17.036116])

第一步是创建地图,为此您必须提供地图必须居中的位置。您还可以指定缩放级别,以及可以在模块文档中检查的其他一些内容:

$map = new Map([
'center' => $coord,
'zoom' => 4,
'width' => '100%'
]);

一旦你掌握了地图,就可以开始添加东西了。就我而言,我添加了设施(Facilty模型)。我存储它的坐标(纬度、经度)、名称、地址等。然后,我遍历一个数组Facilityies(foreach $f in $facilities),对于每个数组:

  1. 创建一个LatLang对象及其坐标:$coord = new LatLng(['lat' => $f->lat, 'lng' => $f->lng]);

  2. 创建新Marker

    $marker = new Marker([
    'position' => $coord,
    'title' => $lab['name_lab'],
    'animation' => 'google.maps.Animation.DROP',
    'visible'=>'true'
    ]);
    
  3. 使用设施的信息(名称、地址)创建一个InfoWindow并将其附加到Marker(您可以在其内容中编写 html):$marker->attachInfoWindow(new InfoWindow(['content' => $f->address]))

  4. 将标记添加到Map$map->addOverlay($marker);

最后,在循环之后,我们显示地图:

echo $map->display();

一个完整的例子:

$coord = new LatLng(['lat' => 49.403916, 'lng' => 17.036116]);
$map = new Map([
'center' => $coord,
'zoom' => 4,
'width' => '100%'
]);
foreach ($facilities as $f) {
$coord = new LatLng(['lat' => $f->lat, 'lng' => $f->lng]);
$marker = new Marker([
'position' => $coord,
'title' => $lab['name_lab'],
'animation' => 'google.maps.Animation.DROP',
'visible'=>'true'
]);
$marker->attachInfoWindow(new InfoWindow(['content' => $f->address]));
$map->addOverlay($marker);
}    
echo $map->display();

有很多自定义选项,但这应该是帮助您入门的 enoguh。请检查模块的文档以及谷歌地图。

相关内容

  • 没有找到相关文章

最新更新