0

我遇到了一个带有坐标数组的ol.proj.transformol.proj.fromLonLat问题。为了测试我尝试使用:Openlayers:不正确的转换坐标?

var my_array=new Array(); 
my_array[0]='13.494263,47.542546'; 
my_array[1]='13.675537,47.563928'; 
my_array[2]='13.763428,47.394399'; 
my_array[3]='13.562927,47.353266'; 
my_array[4]='13.689167,47.394167'; 
var my_array_length=my_array.length; 
for (var i=0; i < my_array_length; i++) 
    { var col_my_array=my_array[i].split(","); 
    var d=col_my_array[0]; 
    var s=col_my_array[1]; 
    var text_popup="Second " + col_my_array[i]; 
    var iconFeature = new ol.Feature 
     (
      { geometry: new ol.geom.Point(ol.proj.transform([d,s], 'EPSG:4326', 'EPSG:3857')), 
      some_text: text_popup 
      } 
     ); 
    vectorSource2.addFeature(iconFeature); 
    } 

这是行不通的。第一个数字(d)转换成OK,但第二个数字不是。如果我使用例如:

var test_coor = [13.689167, 47.394167]; 
var point_icon=new ol.proj.fromLonLat(test_coor); 

,或者如果我把号码

var point_icon=new ol.proj.transform([13.689167, 47.394167], 'EPSG:4326', 'EPSG:3857'); 

一切都OK了。但我不知道为什么我不能使用坐标数组。我在Openlayers 3或Openlayers 4上测试它,但结果是一样的。在Openlayers 2上没问题。

例如:如果循环过程中使用my_array[4],我得到:1523871.0998240844,-5252166.631004199代替:1523871.0998240844,6006651.168265123

回答

1

不要变换串! ol.proj.transform预计Array.<number>

var d = parseFloat(col_my_array[0]); 
var s = parseFloat(col_my_array[1]); 
+0

谢谢你,我就可以测试下周六,比我写的,如果它帮助。有趣的是,我在OL2中使用了相同的过程,它很有用。 – JardaKo

+0

几分钟前,我测试了它。没关系,感谢乔纳塔斯的帮助。 – JardaKo