使用控件时出错.措施:无方法'setMap'

Error while using Control.Measure: no method 'setMap'

本文关键字:方法 setMap 控件 出错 措施      更新时间:2023-09-26

我有OpanLayers 2.10,当我试图将OpenLayers.Control.Measure添加到地图控件时,我会得到以下错误:

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

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

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

我是这样使用Control.PointControl.Path的:

  1. 控制。路径
  2. 控制。点

哪个是不正确和正确的顺序/优先级是:

  1. 控制。点
  2. 控制。路径

现在,在更改了包括OpenLayers模块的顺序后,一切都很好。