openlayers 3 多面查询

openlayers 3 multipolygon query

我有这个多边形

多边形 (((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 link 在这里你可以看到多边形,我如何阻止多边形越过地图的顶部?

http://jsfiddle.net/7vhd23nd/

问题不在于您的代码,而在于投影。

您使用的是球形墨卡托投影,但您的某些点位于投影范围之外。 (你可以在这里找到投影范围http://epsg.io/3857

这就是那些拉伸多边形的原因。

你可以切割你的几何图形(如果可能的话),或者你可以使用另一个投影,否则你需要一个球形表示(比如 google 地球)