使用Control.Measure时出错:没有方法'setMap'

时间:2013-02-26 19:18:43

标签: javascript openlayers

当我尝试将OpenLayers.Control.Measure添加到地图控件时,我有OpanLayers 2.10,我收到此错误:

TypeError: Object #<Object> has no method 'setMap'

这是我的代码:

map.addControl(new OpenLayers.Control.Measure(
OpenLayers.Handler.Path, {
  persist: true
}));

注意:我认为我的问题与OpenLayers.Handler.Path有关,因为在调试代码后我发现对象的CLASS_NAMEOpenLayers.Handler.Path

我的代码有什么问题?我应该在地图中添加特定的模块/插件吗?

1 个答案:

答案 0 :(得分:2)

最后我找到了解决方案。问题与使用自定义构建和将模块添加到主OpenLayers文件的优先级有关。

我以这种方式使用了Control.PointControl.Path

  1. Control.Path
  2. Control.Point
  3. 哪个是错误的,正确的顺序/优先级是:

    1. Control.Point
    2. Control.Path
    3. 现在,在更改包含OpenLayers模块的顺序后,一切正常。