Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

203
Views
Problem with drawing arrows in OpenLayers

I would like to draw the simple arrow in OpenLayers.

I found some examples here:

OpenLayer 4 draw arrows on map https://openlayers.org/en/latest/examples/line-arrows.html Draw arrow without using any image in openlayers3

and made some code:

var arrowInteraction = new ol.interaction.Draw({
type: 'LineString',
source: vectorLayer.getSource(),
geometryFunction: function(coordinates, geometry) {
var geometry = coordinates.getGeometry();
var styles = [
    // linestring
    new ol.style.Style({
        stroke: new ol.style.Stroke({
            color: '#ffcc33',
            width: 2
        })
    })
 ];

  geometry.forEachSegment(function (start, end) {
    var dx = end[0] - start[0];
    var dy = end[1] - start[1];
    var rotation = Math.atan2(dy, dx);

    var lineStr1 = new ol.geom.LineString([end, [end[0] - 200000, end[1] 
 + 200000]]);
    lineStr1.rotate(rotation, end);
    var lineStr2 = new ol.geom.LineString([end, [end[0] - 200000, end[1] 
 - 200000]]);
    lineStr2.rotate(rotation, end);

    var stroke = new ol.style.Stroke({
        color: 'green',
        width: 1
    });

    styles.push(new ol.style.Style({
        geometry: lineStr1,
        stroke: stroke
    }));
    styles.push(new ol.style.Style({
        geometry: lineStr2,
        stroke: stroke
    }));
   });

   return styles;
 }

I am getting an error:

coordinates.getGeometry is not a function

What can be wrong here?

My full code is here:

https://mktest.opx.pl/

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

This might help: TypeError: Cannot read properties of undefined (reading 'id')

If I understand it right, the functions aren't called synchronized.

In that tutorial, he catch it with:

 itemToForm = () => {
  if(this.item === undefined) {return}
         
  // The rest of the code
}

But you can also catch it with

  if(yourObjectOrValue === undefined) {// The rest of the code}

     
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!