【问题标题】:Openlayers: Incorrect transform coordinates?Openlayers:不正确的变换坐标?
【发布时间】:2017-03-22 19:35:38
【问题描述】:

ol.proj.transformol.proj.fromLonLat 的坐标数组有问题。对于测试,我尝试使用:

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) 可以转换,但第二个 (s) 不是。如果我使用例如:

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');

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

例如:如果在循环中使用my_array[4],我得到:1523871.0998240844,-5252166.631004199 而不是:1523871.0998240844,6006651.168265123

【问题讨论】:

    标签: arrays coordinates transform openlayers coordinate-transformation


    【解决方案1】:

    不要转换字符串! ol.proj.transform 期待 Array.&lt;number&gt;

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

    【讨论】:

    • 谢谢,下周六我可以测试它,如果有帮助,我会写。有趣的是,我在 OL2 中使用了相同的程序并且它可以工作。
    • 几分钟前我测试了它。没关系,感谢 Jonatas 的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 2014-05-14
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多