2025 独立开发者训练营:AI Agent!查看介绍 / 立即报名 →

Drupal + OpenLayers 用地图显示内容

给网站上的内容添加一个位置字段,然后用地图显示这些带位置字段的内容。如果用 Drupal 做这件事,安装 Genfiled 模块,为内容添加收集位置信息的字段,再安装 Openlayes 模块,配合 Views 模块用地图来显示内容。

有朋友想做一个健康医疗类的网站,我觉得想法非常好,如果做好也会非常有用。像 Zocdochealthgrades,网站可以帮助别人找到合适的医生,用户可以根据位置来搜索医生,同时可以用地图的显示展示出搜索结果。

Drupal +  Openlayers 用地图显示内容

自定义用户档案

我们可以为 Drupal 网站上的用户添加字段来收集你想要的信息,不过默认情况下你不能为不同的用户角色添加不同的字段,也就是你为用户添加的字段所有用户都可以看到, 解决这个问题,可以安装 profile2 ( 7.x-1.3 )模块,它可以让我们创建不同的用户档案,这些用户档案有点像是内容类型,不同的用户档案可以添加不同的字段,然后你可以通过 Drupal 的权限管理系统,控制什么样的用户可以添加或者添加什么样的用户档案。

在我们的健康医疗网站里,可能有医生和普通用户,我们可以为医生创建一种用户档案,里面可以添加比如医生的简介,毕业的学校,从业的时间,所属的医院,所在的位置等等。对于普通用户,有些字段是不需要的。

收集位置信息

安装 geofield ( 7.x-1.1 )模块,然后可以为内容添加收集位置信息的字段,收集位置信息的方式有几种,如果这时你已经安装了 openlayers,可以使用 openlayers 地图来收集位置信息( 地图的行为里需要勾选 Geofield ),也就是用户可以直接点击在地图上的位置来确定自己的位置。不管用什么方式,字段所存储的数据就是一个经纬度。

我们可以为使用 profile2 模块创建的医生档案添加一个收集位置信息的字段。

视图配置

在地图上显示内容

安装 openlayers 模块 ( 7.x-2.0-beta3 ),这个模块可以使用 bing,google 地图来显示带有位置字段的内容。要用到 views 视图模块,首先我们要用视图创建一个 openlayers 数据覆盖层,就是找到你想要在地图上显示的内容,内容必须带有位置字段,也就是字段里存储了经纬度信息。

创建数据覆盖层类型的视图,跟创建普通的视图一样,可以参考宁皓网的《 Drupal 7 字段 视图 关系 》这个课程,要注意的是视图的显示必须是 openlayers data overlay 。视图添加的字段里需要有位置字段,然后要设置一下哪个字段是位置字段,哪些字段要作为点击地图标记弹出的窗口里的内容。比如在弹窗里可以显示医生的头像还有名称等等。

创建好要在地图上显示的数据覆盖层以后,我们可以打开 openlayers 去创建一个地图,你可以设置使用 google 地图,bing 地图,或者其它的地图,你可以设置地图标记的样式,是否要使用弹窗信息。然后还要勾选之前使用视图创建的数据覆盖层。

配置好地图以后,我们需要再使用视图去创建一个地图,可以是一个页面,也可以是区块,把视图的格式改成 openlayers map ,再选择要显示的地图,完成!

Drupal OpenLayers
微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点