我有这个多边形
MULTIPOLYGON(((179.9999 89.9999,179.9999 67,150 69,90,8,70 -60,-20 -60,-40 36,-25 66,-14 72,0 89.9999,179.9999 89.9999)),(( -170 89.9999,-170 66,-179.9999 67,-179.9999 89.9999,-170 89.9999)))
它一直向北延伸超过地图的边界,我对此非常新,我不知道为什么它会超越地图的顶部
我正在使用标准的openlayers地图,我从我的数据库中获取多边形,然后我使用javascript读取它们
var items = JSON.parse(resulta);
for(i = 0; i < items.length; i++)
{
var format = new ol.format.WKT();
if (items[i].WKT.length > 0) {
for (y = 0; y < items[i].WKT.length; y++) {
var feature = format.readFeature(items[i].WKT[y], {
dataProjection: 'EPSG:4326',
featureProjection: 'EPSG:3857'
});
if (items[i].type === 1) {
vectorSourcetype1.addFeature(feature);
}
else if (items[i].type === 2) {
vectorSourcetype2.addFeature(feature);
}
else if (items[i].type === 3) {
vectorSourcetype3.addFeature(feature);
}
}
}
}
我在这里有一个jsfiddle链接,你可以看到多边形,如何阻止多边形越过地图的顶点?
答案 0 :(得分:2)
问题不在于您的代码,而在于投影。
您正在使用球形墨卡托投影,但您的某些点超出了投影的范围。 (你可以在这里找到投影界限http://epsg.io/3857)
这就是那些拉伸多边形的原因。
您可以剪切几何图形(如果可能),或者您可以使用其他投影,否则您需要球形表示(如Google地球)