我正在尝试实现示例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);
}