Skip to content

Instantly share code, notes, and snippets.

@mblaine
Created February 3, 2024 02:48
Show Gist options
  • Save mblaine/2d3c3fee8dd247cebb2e209010bcab22 to your computer and use it in GitHub Desktop.
Save mblaine/2d3c3fee8dd247cebb2e209010bcab22 to your computer and use it in GitHub Desktop.
pipe_tape_sample.js
import josm from 'josm'
import * as console from 'josm/scriptingconsole'
import { DataSetUtil, OsmPrimitiveType, DataSet } from 'josm/ds'
import {Api} from 'josm/api'
import {buildChangeCommand} from 'josm/command'
const HashSet = Java.type('java.util.HashSet')
const MergeNodesAction = Java.type('org.openstreetmap.josm.actions.MergeNodesAction')
const layer = josm.layers.get(0);
const dsutil = new DataSetUtil(josm.layers.get(0).getDataSet());
function setStream(id)
{
let item;
item = dsutil.get(id,'way');
if(item === null || item.hasTag("waterway") === true || item.hasTag("NHD:FType") === false || !(item.get("NHD:FType") === "ArtificialPath" || item.get("NHD:FType") === "Connector"))
{
console.println('setStream failure: ' + id.toString());
}
else
{
buildChangeCommand(item, {tags: {'waterway': 'stream'}}).applyTo(layer);
}
}
function mergeNodes(id1, id2, id3, id4, id5, id6)
{
const nodes = new HashSet();
for(let i = 0; i < arguments.length; i++)
{
if(typeof(arguments[i]) !== "undefined")
{
let item = dsutil.get(arguments[i],'node');
if(item !== null && item.isDeleted() === false)
nodes.add(item);
}
}
if(nodes.size() <= 1)
{
console.println('mergeNodes failure: ' + arguments[0].toString());
}
else
{
MergeNodesAction.doMergeNodes(layer, nodes, nodes.iterator().next());
}
}
setStream(136692002);
setStream(136692008);
setStream(136692014);
setStream(136692022);
mergeNodes(1499546141,1501730705,1498819282);
mergeNodes(1499546138,1501138501);
setStream(136692023);
mergeNodes(1499546316,1498821513,1500543913);
mergeNodes(1499546320,1498822023,1501142035);
setStream(136692025);
mergeNodes(1499546131,1498819158,1501730704);
setStream(136692028);
mergeNodes(1499520219,1501666564);
mergeNodes(1499520239,1498660820,1499667565);
setStream(136692098);
setStream(136692102);
mergeNodes(1499544144,1500201378,1499437252);
setStream(136692107);
mergeNodes(1499494779,1500284623,1498283954);
setStream(136692112);
mergeNodes(1499516146,1499658654,1498615823);
setStream(136692115);
mergeNodes(1499545355,1499441812,1500913298);
setStream(136692122);
setStream(136692178);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment