在Drupal中绘制地图: GMap, Location & Views

bookmark
Drupal版本: 
6.x

模块介绍

GMap 和 Location 无疑是最佳组合。虽然也有其他模块可选来保存地点信息,但是 Location 模块是一个非常直截了当方法(straightforward option),而且还可以很好的和 GMap 模块整合在一起。 

模块安装

  1. 下载下列模块,并解压缩到您 Drupal 站点的 sites/all/modules 目录下(如果模块有更新版本,大多也能正常使用)
  2. 进入 Home › Administer › Site building 开启下列模块
    • GMap
    • Location(location核心模块)
    • Views
    • GMap Location
    • GMap Macro Builder
    • Location Views
    • Location Search(可选,搜索地点)
    • Node Locations(可选,显示所有节点的地图:将所有包含 location 信息的节点标注在一个 google map 上)
    • User Locations(可选,显示所有用户的地图:将所有包含 location 信息的用户标注在一个 google map 上)
    • GMap Taxonomy Markers(可选)
    • Advanced Help(可选,查看高级信息,包括 GMap API)

权限设置

打开 Administer › User Management › Permissions 页面,为用户角色设置用户权限。

  • gmap_location module
  • gmap_macro_builder module
  • location module
  • location_user module

设置

本文假设您已经全新安装了一个Drupal 6 系统,并使用默认 Garland 主题。我们强烈推荐您在没有完全设置好相关模块前不用使用自定义主题,因为某些第三方主题或自定义主题可能没有添加相应的 javascript 导致和 GMap 模块不兼容。

设置 Google Maps API Key

打开 Administer › Site configuration › GMap 页面,填写 Google Maps API Key (点击这里获取 API Key)。

Location 模块设置

打开页面 Administer › Site configuration › Location ›  Geocoding options (开启您希望您网站需要用到(cover with)的国家)。而通过图中圈出的 Configure parameters 链接打开的页面中 Google Map API Key 会自动从上面的 GMap 处获得。 

设置 geocoding options
图1 设置 geocoding options

设置用户地址:打开  Administer › User Management › User Settings 页面开启您希望用户填写的地址字段。这部分选项一定要正确设置,否则如果 country 字段被强制为默认或这某个字段被禁用了,那么进行地理位置编码时(geocoding)(获取经度和纬度)时就会引发问题(issue)。

设置 User Location
图2 设置 User Location

在节点中添加地点:打开 Administer › Content Management › Content Types 页面,选择您需要输入地点信息的内容类型,然后进入开启地址字段。这部分选项一定要正确设置,否则如果 country 字段被强制为默认或这某个字段被禁用了,那么进行地理位置编码时(geocoding)(获取经度和纬度)时就会引发问题(issue)。现在只用选择相应的内容类型,用户就可以输入一个地址或者经纬度座标。

添加 node 时的 Location 字段
图3 添加 node 时的 Location 字段

用户或者节点的地点显示效果如下:

默认主题下的地点显示效果
图4 默认主题下的地点显示效果

GMap 模块设置

打开 Administer › Site configuration › GMap 页面,填写 Google Maps API Key (点击这里获取 API Key)和它关于地图的相关选项。

  • 选项包括设置默认地图的中心、地图类型等等。如果您的地图总是以非洲海岸的某处为中心,那么您可以通过这里来改变。
  • 这里还包括强大的标记群集设置。我建议您在设置好基础选项并使地图正常显示后,再来研究这些高级功能。

点击这里查看设置的范例

打开 Administer › Site configuration › GMap Location 页面,来设置节点地图和用户地图。这些页面各自都需要设置一个“宏”来显示所有节点的地图和所有用户的地图。 您可以使用默认宏,当然也可以打开导航菜单上的 Build a GMap macro(Drupal 路径 map/macro) 来创建一个新宏。宏的格式如下: [gmap zoom=3 |center=37.3002752813443,-82.08984375 |width=100% |height=300px |control=Small |type=Physical]

Gmap Location 设置选项
图5 Gmap Location 设置选项

打开 Administer › Site configuration › Location 页面,勾选 Use a Google Map to set latitude and longitude(使用 Google Map 设置经度纬度) 选项,这样用户可以在 Google Map 中设置标记,这样来替代地址输入。

添加节点时在 Google Map 上设置标记示例
图6 添加节点时在 Google Map 上设置标记示例

现在您的网站中已经有了两张默认的地图:一张是所有节点的地图,而另一张是所有用户的地图。这些地图上的标记(pin)可以基于用户的角色、内容类型(content type)或是分类术语(taxonomy term)设置成不同的颜色。在 Administer › Site building › Blocks 页面开启 “Location map” 区块,可以把它显示到侧栏(sidebar)或是内容页脚处(content footer)。Voila(快看),包含地点(location)信息的节点的内容旁边是不是显示出了一张小地图:) 

结合视图(Views)

新建一个视图(View),视图类型(View type)为 node,样式(Style)为 gmap。

使用 Views 建立地图示例
图7 使用 Views 建立地图示例

现在您已经可以使用 Views 和 CCK 的全部功能来选择哪些字段显示在地图是信息窗口(info window),可以结合 imagecache 模块控制图片字段的大小,为这个视图制定主题等等。您可以通过试图为特定的内容类型创建地图,或者只显示某一特定地点附近的所有节点。 您可以让用户对数据进行筛选(查看 great brewers 网站地图示例,需注册)。

结合分类(Taxonomy)

包含不同术语的内容可以设置成不同样式的标记(markers)(查看 Toilet Radar 网站示例)。 新建一个词库,设置为 single select(单选)、required(必填),然后开启 gmap markers。

添加自定义标记(Markers)

如果您安装了 Advanced Help 模块,就可以阅读 GMap 模块的扩展说明文档,然后打开 help/gmap/extending 页面。下面这段代码从那个页面复制过来。您可以把自定义的标记图标放在 Drupal 路径 sites/all/modules/gmap/markers 的文件夹下,然后创建一个 ini 文件。如果想把自定义的图标和内建的图标分开放置,您也可以新建一个文件夹。下面的代码是一个 ini 文件示例:

; Defaults
[defaults] ; The defaults section holds the settings that will be used if they are not specified on the marker. ;
shadow = ""    ; The filename of the image to use for the "shadow" of the marker.
anchorX = 10   ; anchorX and anchorY are the pixel coordinates relative to the top left corner of the image
anchorY = 29   ; to define where the "pushpin" of the marker is.
infoX = 17     ; infoX and infoY are the pixel coordinates relative to the top left corner of the image
infoY = 6      ; to define where the "tail" of a popped-up info window points to.

; Marker sets
[mycustom]                   ; This is the "internal" name of the new marker type. It's used
                             ; in macros and when placing markers using PHP code.
name = "My custom"           ; This is the name that appears in the marker chooser dropdown.
sequence = "my1.png,my2.png" ; The list of image files to use. Specifying multiple filenames
                             ; will let you have changing images when placing a series
                             ; of markers. The "Numbers" marker is a good example.
; Files

在建立好您的 ini 文件后,还需要到 GMap 设置页面并点击 Regenerate (重建)按钮.

GMap 高级应用

如果您安装了 Advanced Help 模块,就可以阅读 GMap 文档的其他一些功能。 您可以在 node.tpl.php 等模板内添加许多自定义的地图。里面包括如何为您的地图建立钥匙,如何在 javascript 中访问 map 对象等一系列文章。GMap module 模块中的 README.txt 和 THEMING.txt 同样也是很多好的说明文档。

文章说明

  • 参考文章地址:Mapping with Drupal: GMap, Location & Views
  • Cityreader 对原文进行翻译,结合了自己的理解和注释。
  • 转载本文请留言,请保留作者名和网页地址:)
  • Petal SEO 为您提供更多精彩的 Drupal 文章

扩展阅读