0

Ich habe ein Problem mit ol.proj.transform oder ol.proj.fromLonLat mit einem Array von Koordinaten. Für den Test versuche ich zu verwenden:Openlayers: Falsche Transformationskoordinaten?

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

Es ist nicht Arbeit. Die erste Zahl (d) wird in OK konvertiert, die zweite (n) nicht. Wenn ich zum Beispiel verwenden:

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

oder wenn ich lege die Zahlen

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

alles ist auch in Ordnung. Aber ich weiß nicht, warum ich kein Koordinatensystem benutzen kann. Ich teste es auf Openlayers 3 oder Openlayers 4, aber das Ergebnis ist das gleiche. Auf Openlayers 2 ist es in Ordnung.

Zum Beispiel: Wenn my_array[4] während Schleife verwendet wird, erhalte ich: 1523871,0998240844, -5252166,631004199 statt: 1523871.0998240844,6006651.168265123

Antwort

1

Keine Strings verwandeln! ol.proj.transform erwartet Array.<number>:

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

Danke, kann ich es nächsten Samstag testen, als ich schreiben, wenn es helfen. Es ist interessant, dass ich dieselbe Prozedur in OL2 verwende und es funktioniert. – JardaKo

+0

Vor ein paar Minuten habe ich es getestet. Es ist OK, danke Jonatas für Hilfe. – JardaKo