我已经设置了一个OpenLayers 3地图的小例子,我正在尝试向地图添加自定义多边形。如果我使用示例中的数据,它可以正常工作,多边形渲染,并在地图上显示,但是当我尝试添加另一个自定义多边形时,它根本不会显示在地图上。这是我使用的代码:
function initMap(map) {
var IMap=new Map(map, [50.5973695, 6.200000]);
var polygons=jQuery("#"+map).data('polygons');
console.log(polygons);
jQuery.each(polygons, function(index, value) {
IMap.addPolygon(index, value);
});
IMap.addPolygon('test', [[-12.55,-21.12], [-44,-55], [-88,75]]);
}
函数Map
在渲染地图时正常工作,并以特定位置为中心。函数addPolygon
也有效,因为我用IMap.addPolygon
行手动添加的多边形在地图上呈现。这是Map::addPolygon
函数:
Map.prototype.addPolygon = function(name, coordinates) {
var _coordinates=[], i;
for (i=0; i<coordinates.length ;i++ ) {
console.log(coordinates[i]);
_coordinates.push(ol.proj.transform(coordinates[i], 'EPSG:4326', 'EPSG:3857'));
}
console.log("Creating polygon", _coordinates);
var Polygon = new ol.geom.Polygon([_coordinates]);
var feature = new ol.Feature({
name: name,
geometry: Polygon
});
this.polygons.push(feature);
feature.setStyle(polyStyle);
this.vectorSource.addFeature(feature);
}
以下是注销的两个_coordinates
:
这个用于动态折叠多边形,不呈现:
创建多边形阵列[Array [2],Array [2],Array [2],Array [2],Array [2],Array [2],Array [2],Array [2],Array [2 ],数组[2],另外9个......]
上面数组的内部数组示例:数组[50.5982266,6.2467439]
这个是用于手动添加的多边形,它呈现了相关性:
创建多边形阵列[Array [2],Array [2],Array [2]]
上面数组的内部数组示例:数组[-13.12,-21.76]
可能是什么问题?
注意:此问题也发布在gis.stackexchange.com。