1

我正在尝试实现示例http://openlayers.org/dev/examples/drag-feature.html

当我用谷歌地图实现这个时,我有一个奇怪的错误:鼠标指针和地图上的点不在同一个地方。

现在,如果我更改以粗体显示的行: map.addLayers([gmap,vectors]); 到 map.addLayers([wms,vectors]); 一切正常。(换句话说,我不使用谷歌地图)。

有人可以告诉我发生了什么吗?

提前致谢。

这是我的页面和代码:

   var map;
   var vectors;
   function initialize() {
       // Create the map object
       map = new OpenLayers.Map('map');
        //Create a Google layer
       var gmap = new OpenLayers.Layer.Google(
           "Google Streets", // the default
           {numZoomLevels: 20}
       );
      // if i use this instead of gmap then everything works.
       var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
                "http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'});
       var renderer=OpenLayers.Util.getParameters(window.location.href).renderer;
       renderer=(renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;

       vectors= new OpenLayers.Layer.Vector("Vector Layer",{
           renderers:renderer
       });

       map.addLayers([gmap,vectors]);

       map.addControl(new OpenLayers.Control.LayerSwitcher());
       map.addControl(new OpenLayers.Control.MousePosition());

       var control=new OpenLayers.Control.DrawFeature(vectors,OpenLayers.Handler.Path);
       map.addControl(control);
       control.activate();
       // Zoom to Vancouver, BC
       map.setCenter(new OpenLayers.LonLat(-123.12, 49.28), 13);         
  }
4

1 回答 1

1

我不太确定你的意思。一切对我来说都很好。请参阅我的示例与您的代码。

于 2012-05-23T05:48:24.657 回答