我正从现有的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);
但它的尺寸非常小。 如何展示更大的尺寸?有什么帮助吗?
答案 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 - 请注意非洲的一个非常大的橙色矩形