I have a string of co-ordinates that are command and space separated.
lon,lat,alt lon,lat,alt lon,lat,alt
What I want to end up with is an array of points where a point is [lon,lat] for passing into a specific perl module. I can of course do this with a slow loop as follows. I have left this relatively verbose to help explain what I'm doing
my @list = split(/[, ]/,$coords); my $size = @list; my @poly = (); for (my $i=0; $i<=($size-3); $i+=3) { my $lon = $list[$i+0]; my $lat = $list[$i+1]; my $point = [$lon,$lat]; push (@poly, $point); }
Now this works fine, but I have coordinate lists of tens of thousands of points and performance is an issue as this needs to run as a web service.
I have a feeling that using map and grep I could make this much more efficient, but I can't get my head round how.
Do any wise monks have a neat and fast solution for this problem?
Thanks!In reply to Fastest way to turn coordinate list into array by brancusi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |