OpenLayers在单击时生成4个独立多边形

OpenLayers在单击时生成4个独立多边形,openlayers,Openlayers,您好,我是openlayers的新手,我从openlayers提供的示例中获取了以下代码,我尝试通过单击创建4个多边形,然后将每个多边形拖放到新位置,这可能吗 提前感谢您的帮助 代码: var映射、向量、控件; 函数init(){ map=newOpenLayers.map('map'); var options={numZoomLevels:3}; var graphic=新OpenLayers.Layer.Image( “某个头衔”, 'image.png', 新的OpenLayers.B

您好,我是openlayers的新手,我从openlayers提供的示例中获取了以下代码,我尝试通过单击创建4个多边形,然后将每个多边形拖放到新位置,这可能吗

提前感谢您的帮助

代码:


var映射、向量、控件;
函数init(){
map=newOpenLayers.map('map');
var options={numZoomLevels:3};
var graphic=新OpenLayers.Layer.Image(
“某个头衔”,
'image.png',
新的OpenLayers.Bounds(-180,-88.75918088.759),
新OpenLayers.尺寸(800200),
选择权
);
图形事件({
loadstart:function(){
OpenLayers.Console.log(“loadstart”);
},
loadend:function(){
OpenLayers.Console.log(“loadend”);
}
});
var jpl_wms=新的OpenLayers.Layer.wms(“标题”,
"http://t1.hypercube.telascience.org/cgi-bin/landsat7", 
{图层:“landsat7”},选项);
向量=新的OpenLayers.Layer.Vector(“向量层”);
map.addLayers([图形,向量]);
addControl(新的OpenLayers.Control.LayerSwitcher());
addControl(新的OpenLayers.Control.MousePosition());
控件={
要点:新的OpenLayers.Control.DrawFeature(向量,
OpenLayers.Handler.Point),
形状:
//*************这就是我想做的***************************************************

对于(i=0;i您应该创建一个随机线性环(我不知道您是否希望多边形是随机的)。线性环是一个包含多边形所需的所有点的对象

var polygonFeatures = new Array();
for (i = 0; i < 4; i++) {

  var site_points = new Array();

  // Whatever points you want to us in site points
  // A point is an OpenLayers.Geometry.Point
  var linear_ring = new OpenLayers.Geometry.LinearRing(site_points);

  // Create a feature for the polygon(s) to be in
  polygonFeatures[i] = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([linear_ring]);
}

// Add the features to the vector layer
vectors.addFeatures([polygonFeatures]);
var polygonfections=new Array();
对于(i=0;i<4;i++){
var site_points=新数组();
//在站点点中,您希望向我们提供的任何点
//点是OpenLayers.Geometry.point
var linear\u ring=新的OpenLayers.Geometry.LinearRing(站点点);
//为要插入的多边形创建特征
polygonFeatures[i]=新OpenLayers.Feature.Vector(新OpenLayers.Geometry.Polygon([linear_ring]);
}
//将特征添加到矢量层
vectors.addFeatures([polygonFeatures]);
这是您必须向地图添加多边形的方式,您不应该在控件中定义它们。dragfeature已经正确,只需确保您为site_点找到了一些东西

var polygonFeatures = new Array();
for (i = 0; i < 4; i++) {

  var site_points = new Array();

  // Whatever points you want to us in site points
  // A point is an OpenLayers.Geometry.Point
  var linear_ring = new OpenLayers.Geometry.LinearRing(site_points);

  // Create a feature for the polygon(s) to be in
  polygonFeatures[i] = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([linear_ring]);
}

// Add the features to the vector layer
vectors.addFeatures([polygonFeatures]);