How to get the mid point of the Poly line in javascript
so i can place a lable for the drawn line
Try the code below. The get_length is another function that just uses the geometryEngine length function. This works for a single part polyline.
function midPointPolyline(line) { var path = line.paths[0]; var seglen = get_length(line, "feet"); var midLen = seglen / 2; var currentDistance = 0; var beforeIndex = 0; var startPoint = line.getPoint(0, 0); for (i = 1; i < path.length - 1; i++) { var nextPoint = line.getPoint(0, i); var d = geometryEngine.distance(startPoint, nextPoint, "feet"); if (currentDistance + d < midLen) { currentDistance += d; startPoint = nextPoint; } else { beforeIndex = (i === 1) ? 0 : i; break; } } startPoint = line.getPoint(0, beforeIndex); var endPoint = line.getPoint(0, beforeIndex + 1); var x = (startPoint.x + endPoint.x) / 2; var y = (startPoint.y + endPoint.y) / 2; var midpt = new esri.geometry.Point({ x, y, spatialReference: { wkid: line.spatialReference.wkid } }); return midpnt;}
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.