【问题标题】:Ushahidi - How to make the markers stay on the map on zoom change?Ushahidi - 如何使标记在缩放更改时留在地图上?
【发布时间】:2014-06-07 14:31:12
【问题描述】:

我使用的是 Ushahidi Web-2.7.3 平台,请参见:http://ti5.net.br/provedorlegal.com.br,当我放大超过一定水平时,聚集的标记会从地图上消失。我还在旧版本的网站上对此进行了测试,请参阅:http://movimentofichalimpa.org/mapa,其中聚集标记在放大时不会消失,而是会变成未分组的,这在集群策略中是正常的。放大时如何使标记保留在地图上?

【问题讨论】:

    标签: google-maps openlayers ushahidi


    【解决方案1】:

    Ushahidi 实际上在底层使用了 OpenLayers —— 图片可能来自 Google,但 Javascript 库是纯粹的 OpenLayers。这些标记实际上是通过将所谓的上下文添加到 OpenLayers.Layer.Vector 和关联的 Cluster.Strategy 的样式属性来生成的。这里有一个很好的例子:OpenLayers cluster example,如果你查看 Javascript 源代码,你会看到它是如何完成的:view-source:http://dev.openlayers.org/releases/OpenLayers-2.13.1/examples/strategy-cluster-threshold.html 通过在 styleMap 的上下文中定义一个半径。

    您的示例不起作用的原因是实际上触发了一个脚本错误,这正在停止执行集群/样式设置。样式在文件ushahidi.js 中定义。如果您打开 Javascript 调试器,您将看到在调用 ushahidi.js 函数以确定集群中的特征数量以及标记半径之前触发的错误。

    实际错误是http://ti5.net.br/provedorlegal.com.br/index.php/json/cluster?s=1401591600&e=1404183599&z=9,但我不知道为什么,因为 OpenLayers 是极难调试的缩小版本。您可能会发现将您的应用程序直接移至 OpenLayers 会有所帮助,因为它更易于调试,而且它也适用于移动设备,我知道这是人们喜欢使用 Ushahidi 的原因之一。

    【讨论】:

    • 我爱你 ;)。没有在控制台中看到错误。问题解决了。
    • @Guttemberg,人们很少告诉我:D 我还能做些什么来吸引你接受答案?
    • 不客气,朋友。您是否喜欢使用 Ushahidi 作为兴趣。我已经看到了很多关于它的内容,主要是在海地地震中,但只直接使用了 OpenLayers(很多)。
    猜你喜欢
    • 2011-03-12
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 2018-10-07
    相关资源
    最近更新 更多