Openlayers:变换坐标不正确?
Openlayers: Incorrect transform coordinates?
我在使用 ol.proj.transform
或 ol.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) 已转换为 OK,但第二个 (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
不要转换字符串! ol.proj.transform
期望 Array.<number>
:
var d = parseFloat(col_my_array[0]);
var s = parseFloat(col_my_array[1]);
我在使用 ol.proj.transform
或 ol.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) 已转换为 OK,但第二个 (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
不要转换字符串! ol.proj.transform
期望 Array.<number>
:
var d = parseFloat(col_my_array[0]);
var s = parseFloat(col_my_array[1]);