2015-06-17 21 views
9

Jestem nowy w OpenLayers i szukam pomocy w rysowaniu linii na mapie, próbowałem różnych rzeczy z różnych postów dotyczących rysowania LineStrings, ale nie mogę tego zrobić praca! Po prostu muszę wymyślić, jak narysować linię między współrzędnymi.OpenLayers 3: prosty przykład LineString

heres niektóre kod, który próbowałem ale nie działa:

var points = [ 
    new ol.geom.Point([78.65, -32.65]), 
    new ol.geom.Point([-98.65, 12.65]) 
    ]; 

var featureLine = new ol.Feature({ 
    geometry: new ol.geom.LineString(points) 
    }); 

var sourceLine = new ol.source.Vector({ 
    features: [featureLine] 
    }); 

var vectorLine = new ol.layer.Vector({ 
    source: sourceLine 
    }); 

map.addLayer(vectorLine); 

Próbowałem też to, ale bezskutecznie:

var layerLine = new ol.layer.Vector({ 
     source: new ol.source.Vector({ 
      features: [new ol.Feature({ 
       geometry: new ol.geom.LineString(points, 'XY'), 
       name: 'Line' 
      })] 
     }), 
    }); 

map.addLayer(vectorLine); 

może ktoś mi punkt w dobrym kierunku? lub powiedz mi, gdzie idę źle?

dziękuję!

EDIT: dzięki Jonatas, kodeks pracy wygląda następująco:

var coordinates = [[78.65, -32,65], [-98.65, 12.65]]; 

    var layerLines = new ol.layer.Vector({ 
     source: new ol.source.Vector({ 
      features: [new ol.Feature({ 
       geometry: new ol.geom.LineString(coordinates), 
       name: 'Line' 
      })] 
     }), 
    }); 

    map.addLayer(layerLines); 
+0

można narysować linię między dwoma punktami z kodem? – Hamelraj

Odpowiedz

7

Wystarczy zmienić:

var points = [ 
    new ol.geom.Point([78.65, -32.65]), 
    new ol.geom.Point([-98.65, 12.65]) 
]; 

Do:

var points = [ 
    [78.65, -32.65], [-98.65, 12.65] 
]; 

Konstruktor ol.geom.LineString zaakceptować tablicę współrzędnych.