0

既存の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);

しかし、それは非常に小さいサイズで表示されています。より大きなサイズで表示するには?何か助けはありますか?

4

1 に答える 1

1

point.transform() はpointオブジェクト自体を変更せず、 newpointを返します。また、ループで使用されるインデックス ( 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);

作業サンプル- アフリカのかなり大きなオレンジ色の長方形に注意してください

于 2012-11-30T06:12:37.960 に答える