需要一个简单的Google Maps解决方案;迷失在模块的迷宫中


15

首先,让我声明我不在乎我必须使用哪个版本的Drupal(6或7)。到目前为止,我都没有使用过Google Maps这两个版本的经验。这些要求是非常基本的(据我了解):

1)对于要在地图中添加的每个公司都有一个节点

2)在节点编辑表单中,我想添加一个地址,并将其添加到自定义的Google地图中(或者复制粘贴Google地图位置的链接)

3)具有搜索功能,可以找到给定位置的最近公司

那里有很多不同的模块,我想指出正确的方向,而不是浏览15个以上的不同模块,只是为了最终意识到我需要为自己编写一个自定义模块。

提前致谢。

Answers:


36

我创建了一个Drupal功能,该功能使用OpenLayers来实现(请参见http://drupal.org/project/ol_locator),或者您可以使用以下演练来设置自己的功能。

  1. 下载并启用以下模块:

  2. 启用子模块:

    • 地理地图7.x-1.0-alpha5
    • 视图UI 7.x-3.0-rc1
    • OpenLayers UI 7.x-2.0-alpha2
    • OpenLayers视图7.x-2.0-alpha2
  3. 转到admin/structure/types/add并创建名为“ Location”的新内容类型

  4. 转到admin/structure/types/manage/location/fields并添加以下字段:

    • 标签:地址>字段名称:地址>字段类型:邮政地址>小部件:动态地址表格
  5. 从列表中选择您想要的可用国家。留空以允许所有这些。

  6. 选中“地址表格(特定国家/地区)”

    • 注意:国家及其相关字段由“地址字段”模块处理。如果您没有看到您的国家或国家/地区没有适当的字段,则需要对该模块http://drupal.org/project/addressfield提出问题(请检查队列中是否有关于您的国家/地区的问题发布前先缺少国家/地区)
  7. 标签:Geofield>字段名称:geofield>字段类型:Geofield>窗口小部件:来自另一个字段的地理编码

  8. 转到admin/structure/types/manage/ol_locator_location/display并更改DefaultGeofield 的显示:

    • 标签:隐藏>格式:OpenLayers
  9. 点击齿轮图标,然后选择以下选项:

    • OpenLayers预设:Geofield Formater地图>数据选项:使用完整几何
  10. 转到admin/structure/openlayers/layers/settings并设置以下内容:

    • Google Maps API版本:v3.2
  11. 让我们通过创建测试位置来测试地理编码是否正常工作

    • 创建测试内容类型时,请确保您使用的地址正确。如果Google不知道您的地址,那么您的新网站也不会。
  12. 转到admin/structure/views/add并使用以下信息创建新视图

    • 视图名称:邻近搜索>描述:在动态地图上显示经过地理编码的位置,以便用户进行邻近搜索。>显示:类型的内容:位置排序方式:未排序>继续和编辑
  13. 除非另有说明,否则添加以下字段并保留其默认值:

    1. 内容:标题 >选中创建标签:“标题”
    2. 内容:地址(地址)
    3. 内容:地理区域(Geofield)>从显示中排除
    4. 接近度:距离(距离)
  14. 将以下过滤条件添加到现有过滤条件

    • 内容:已发表(是)和
    • 内容:类型(=位置)
    • 接近度:大圆(暴露)>将此过滤器暴露给访问者,以允许他们进行更改>标签:接近度>在“值”字段中添加“ 10”>解锁计量单位>解锁位置
  15. 页眉 >全局:文本区域>即使视图无结果也显示

    • “查找您附近的位置。您可以使用城市,省/州或邮政编码来搜索。”
  16. 无结果行为 >全局:文本区域并添加以下内容:

    • “很抱歉,没有找到结果
      。1.)验证邮政编码的准确性
      。2.)检查您所在城市,省或州的拼写
      。3.)增加邻近距离”
  17. 提交按钮文字:搜索

  18. 添加新的显示:“ OpenLayers数据叠加

  19. 格式

    • 设置>应用此openlayers(覆盖)>地图数据源:WKT> WKT字段:地理字段>描述字段>>应用(此显示)
  20. 保存视图

  21. admin/structure/openlayers/maps

  22. 克隆默认地图

  23. 常规信息>名称:location_map。标题:位置图>地图说明:这是默认位置图。

  24. 图层和样式>叠加图层(选择我们刚刚创建的视图)位置“启用”“激活”对Geofield Formatter的占位符执行相同的操作

  25. 行为>弹出式窗口(必须返回并稍后选择要应用弹出窗口的图层。”)>缩放到图层“选择加载地图时缩放到的图层 >点缩放级别:20 ****

  26. 保存地图

  27. 返回我们刚刚创建的视图

    • admin/structure/views/view/proximity_search/edit
  28. 添加显示“页面”

    • 路径: /locator
    • 格式:OpenLayers地图>应用(此显示)>地图:位置地图(我们刚刚在OpenLayers中创建的位置地图)>应用
  29. 保存视图(我们现在应该在视图底部的预览窗格中看到地图,其中包含所有测试内容

  30. 添加显示:“附件”

    • 格式:表格>应用(此显示)
    • 附加到:页面
    • 继承公开的过滤器:是
    • 删除标题>全局:文本区域>应用(此显示)
    • 要显示的项目:显示指定数量的项目| 5项
    • 继承传呼机:是
    • 渲染传呼机:是
  31. 保存视图

  32. 行为>弹出>图层>接近性_search_openlayers_1(我们刚刚创建的View Openlayers地图)

  33. 缩放到图层>在地图加载时缩放到给定图层的程度。>proximity_search_openlayers_1

  34. 返回admin/structure/types/manage/location/display>单击齿轮图标,然后将“ 打开图层预设”更改为我们刚刚创建的位置图 >“更新”>“保存”

瞧!完成


1
您的答案如此详细,我想悬赏一下并自动将其奖励给您:D我现在将尝试这些步骤,让您知道它的工作
原理

这不仅是答案,而且是教程:)
Codium

+1,但必须注意,该ol_locator功能在使用较新版本的模块时可能会出现问题,并且其中没有版本号限制。我经历了(不幸的是)。但是您的答案确实很详细。
Sk8erPeter

如果该模块有问题,请将该模块发布在我的模块的问题队列中,其中包含无法正常使用的模块(完整详细信息)。解决这些问题没有问题,但我需要了解它们。:)

我刚刚测试了OpenLayers Locator,它的效果和广告宣传的一样好。谢谢@nicoz。
奈杰尔·沃特斯

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.