多边形以非常小的形式显示

时间:2012-11-30 05:31:07

标签: javascript openlayers

我正从现有的lonlats绘制多边形。但它的尺寸非常小。 代码如下,

for(var i in coordinates) {
  point = new OpenLayers.Geometry.Point(coordinates.lon,coordinates.lat);
  point.transform(new OpenLayers.projection("EPSG:4326"),map.getProjectionObject());
  points.push(point);
}
points.push(points[0]);
var linearRing = new OpenLayers.Geometry.LinearRing(points);
var polygonFeature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([linearRing]),null,{strokeColor:"black",
fillColor:"orange",sides:4});
newLayer.addFeatures([polygonFeature]);
newLayer.redraw(true);

但它的尺寸非常小。 如何展示更大的尺寸?有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

point.transform()不会更改point对象本身,它会返回新的point,所以: 此处也没有在循环中使用的索引(i),此处还有语法错误(new OpenLayers.projection应为new OpenLayers.Projection

for(var i in coordinates) {
  point = new OpenLayers.Geometry.Point(coordinates[i].lon,coordinates[i].lat);
  points.push(
         point.transform(
             new OpenLayers.Projection("EPSG:4326"),
             map.getProjectionObject()
         )
  );
}
points.push(points[0]);
var linearRing = new OpenLayers.Geometry.LinearRing(points);
var polygonFeature = new OpenLayers.Feature.Vector(
  new OpenLayers.Geometry.Polygon([linearRing]),null,{
    strokeColor:"black", 
    fillColor:"orange",
    });
newLayer.addFeatures([polygonFeature]);
newLayer.redraw(true);

working sample - 请注意非洲的一个非常大的橙色矩形