• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java Node类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.openstreetmap.josm.data.osm.Node的典型用法代码示例。如果您正苦于以下问题:Java Node类的具体用法?Java Node怎么用?Java Node使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Node类属于org.openstreetmap.josm.data.osm包,在下文中一共展示了Node类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: getLevel

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
/**
 * The level is defined if all the tagged nodes show the same level
 * @param way
 * @return
 */
private Integer getLevel(Way way) {
    Integer guest = null;
    for(Node n : way.getNodes()) {
        if(n.getKeys().containsKey(LEVEL)) {
            int nextGuest = Integer.parseInt(n.get(LEVEL));
            if(null == guest) {
                guest = nextGuest;
            } else {
                if(guest != nextGuest) {
                    // The way cover at least 2 levels
                    return null;
                }
            }
        }
    }
    return guest;
}
 
开发者ID:STEMLab,项目名称:JOSM-IndoorEditor,代码行数:23,代码来源:FilterIndoorLevel.java


示例2: showDataFromLayer

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
private void showDataFromLayer() {
    listModel.clear();
    indexToIdentifier.clear();
    identifierToIndex.clear();

    if (layer != null && layer.data != null && !layer.data.allPrimitives().isEmpty()) {
        int index = 0;

        // Build the maps and add the primitives to the list's model
        for (final OsmPrimitive osmPrimitive : layer.data.allPrimitives()) {
            if (osmPrimitive instanceof Node && osmPrimitive.getKeys().isEmpty()) { // skip points without tags
                    continue;
            }
            listModel.addElement(new PrintablePrimitive(index, osmPrimitive));
            indexToIdentifier.put(index, osmPrimitive.getPrimitiveId());
            identifierToIndex.put(osmPrimitive.getPrimitiveId(), index);
            index++;
        }
    }
}
 
开发者ID:JOSM,项目名称:geojson,代码行数:21,代码来源:GeoJsonDialog.java


示例3: createWay

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
private Way createWay(final List<LngLatAlt> coordinates) {
    if (coordinates.isEmpty()) {
        return null;
    }
    final Way way = new Way();

    final List<Node> nodes = new ArrayList<>(coordinates.size());

    for (final LngLatAlt point : coordinates) {
        final Node node = createNode(point);

        nodes.add(node);
    }
    way.setNodes(nodes);

    dataSet.addPrimitive(way);

    return way;
}
 
开发者ID:JOSM,项目名称:geojson,代码行数:20,代码来源:DataSetBuilder.java


示例4: getNearestNodesImpl

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
/**
 * The *result* does not depend on the current map selection state,
 * neither does the result *order*.
 * It solely depends on the distance to point p.
 *
 * This code is coped from JOSM code
 * 
 * @return a sorted map with the keys representing the distance of
 *      their associated nodes to point p.
 */
private Map<Double, List<Node>> getNearestNodesImpl(Point p) {
    TreeMap<Double, List<Node>> nearestMap = new TreeMap<>();
    DataSet ds = getCurrentDataSet();

    if (ds != null) {
        double dist, snapDistanceSq = 200;
        snapDistanceSq *= snapDistanceSq;

        for (Node n : ds.searchNodes(getBBox(p, 200))) {
            if ((dist = Main.map.mapView.getPoint2D(n).distanceSq(p)) < snapDistanceSq)
            {
                List<Node> nlist;
                if (nearestMap.containsKey(dist)) {
                    nlist = nearestMap.get(dist);
                } else {
                    nlist = new LinkedList<>();
                    nearestMap.put(dist, nlist);
                }
                nlist.add(n);
            }
        }
    }

    return nearestMap;
}
 
开发者ID:bwr57,项目名称:CustomizePublicTransportStop,代码行数:36,代码来源:CreateNewStopPointOperation.java


示例5: createStopAreaRelation

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
/**
    * Forming commands for josm for saving stop area relation attributes
    * @param commands Original command list
 * @param stopArea Stop area object
    * @return Resulting command list
    */
private List<Command> createStopAreaRelation(List<Command> commands, StopArea stopArea) 
{
   	if(commands == null)
   		commands = new ArrayList<Command>();

   	Relation newRelation = new Relation();
	for(Node node : stopArea.stopPoints)
	{
		newRelation.addMember(new RelationMember(OSMTags.STOP_ROLE, node));
	}
	for(OsmPrimitive platform : stopArea.platforms)
	{
		newRelation.addMember(new RelationMember(OSMTags.PLATFORM_ROLE, platform));
	}
	for(OsmPrimitive otherMember : stopArea.otherMembers)
	{
		newRelation.addMember(new RelationMember("", otherMember));
	}
	Main.main.undoRedo.add(new AddCommand(newRelation));
	commands = generalTagAssign(newRelation, commands, stopArea);
	commands = assignTag(commands, newRelation, OSMTags.TYPE_TAG, OSMTags.PUBLIC_TRANSPORT_TAG);
	commands = assignTag(commands, newRelation, OSMTags.PUBLIC_TRANSPORT_TAG, OSMTags.STOP_AREA_TAG_VALUE);
   	return commands;
}
 
开发者ID:bwr57,项目名称:CustomizePublicTransportStop,代码行数:31,代码来源:CustomizeStopAreaOperation.java


示例6: searchBusStop

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
/**
 * Testing, is josm object bus stop node or contains bus stop node, defined by tag and its value
 * @param member Josm object
 * @param tag Tag name
 * @param tagValue Tag value
 * @return true, if josm object is bus stop node or contains bus stop node
 */
private Node searchBusStop(OsmPrimitive member, String tag, String tagValue)
{
	if(member instanceof Node)
	{			
		if(compareTag(member, tag, tagValue))
		{
			return (Node)member;
		}
	}
	else
	{
		Way memberWay = (Way) member;
		for(Node node : memberWay.getNodes())
		{
			if(compareTag(node, tag, tagValue))
			{
				return node;
			}					
		}
	}
	return null;
}
 
开发者ID:bwr57,项目名称:CustomizePublicTransportStop,代码行数:30,代码来源:CustomizeStopAreaOperation.java


示例7: clearExcessTags

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
/**
 * Clear excess tags from JOSM object and its nodes
 * @param commands Original command list
 * @param target JOSM object
 * @param tag Tag name
 * @param tagValue Tag value
 * @return Resulting command list
 */
private List<Command> clearExcessTags(List<Command> commands, OsmPrimitive target, String tag, String tagValue)
{
   	if(commands == null)
   		commands = new ArrayList<Command>();

   	if(compareTag(target, tag, tagValue))
	{
		commands = clearTag(commands, target, tag);
	}
	if(target instanceof Way)
	{
		Way memberWay = (Way) target;
		for(Node node : memberWay.getNodes())
		{
			if(compareTag(node, tag, tagValue))
			{
				commands = clearTag(commands, target, tag);
			}					
		}
	}
	return commands;
}
 
开发者ID:bwr57,项目名称:CustomizePublicTransportStop,代码行数:31,代码来源:CustomizeStopAreaOperation.java


示例8: createSeparateBusStopNode

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
/**
 * Create separate bus stop node or assign bus stop tag to platform node
 * @param commands Original command list
 * @param stopArea Stop area object
 * @param firstPlatform First platform in stop area relation
 * @param tag Tag name
 * @param tagValue Tag value
 * @return Resulting command list
 */
protected List<Command> createSeparateBusStopNode(List<Command> commands, StopArea stopArea, OsmPrimitive firstPlatform, String tag, String tagValue)
{
   	if(commands == null)
   		commands = new ArrayList<Command>();

   	LatLon centerOfPlatform = getCenterOfWay(firstPlatform);
	if(firstPlatform instanceof Way)
	{
		if(centerOfPlatform != null)
		{
			Node newNode =new Node();
			newNode.setCoor(centerOfPlatform);
	    	Main.main.undoRedo.add(new AddCommand(newNode));
	    	Main.main.undoRedo.add(new ChangePropertyCommand(newNode, tag, tagValue));
			commands = assignTag(commands, newNode, tag, tagValue);
			stopArea.otherMembers.add(newNode);
		}
	}
	else
	{
   		commands = assignTag(commands, firstPlatform, tag, tagValue);
	}
	return commands;
}
 
开发者ID:bwr57,项目名称:CustomizePublicTransportStop,代码行数:34,代码来源:CustomizeStopAreaOperation.java


示例9: getCenterOfWay

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
/**
   * Calculation of center of platform, if platform is way
   * @param platform Platform primitive
   * @return Coordinates of center of platform
   */
  public static LatLon getCenterOfWay(OsmPrimitive platform)
  {
if(platform instanceof Way)
{ 
	//p = mapView.getPoint((Node) stopArea.selectedObject);
	Double sumLat = 0.0;
	Double sumLon = 0.0;
	Integer countNode = 0;
	for(Node node : ((Way) platform).getNodes())
	{
		LatLon coord = node.getCoor();
		sumLat += coord.getX();
		sumLon += coord.getY();
		countNode++;
	}
	return new LatLon(sumLon / countNode, sumLat / countNode);		
}
return null;
  }
 
开发者ID:bwr57,项目名称:CustomizePublicTransportStop,代码行数:25,代码来源:StopAreaOperationBase.java


示例10: HouseNumberInputHandler

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
/**
 * Instantiates a new house number input handler.
 *
 * @param terracerAction the terracer action
 * @param outline the closed, quadrilateral way to terrace.
 * @param template the closed, template for the terrace
 * @param init The node that hints at which side to start the numbering
 * @param street the street, the buildings belong to (may be null)
 * @param streetName the name of the street, derived from either the street line or
 *            the house numbers which are guaranteed to have the same name
 *            attached (may be null)
 * @param buildingType The value to add for building key
 * @param associatedStreet a relation where we can add the houses (may be null)
 * @param housenumbers a list of house number nodes in this outline (may be empty)
 * @param title the title
 */
public HouseNumberInputHandler(final TerracerAction terracerAction,
        final Way outline, final Way template, final Node init, final Way street, final String streetName, final String buildingType,
        final Relation associatedStreet,
        final ArrayList<Node> housenumbers, final String title) {
    this.terracerAction = terracerAction;
    this.outline = outline;
    this.template = template;
    this.init = init;
    this.street = street;
    this.streetName = streetName;
    this.associatedStreet = associatedStreet;
    this.housenumbers = housenumbers;

    this.dialog = new HouseNumberInputDialog(this, street, streetName, buildingType,
            associatedStreet != null, housenumbers);
}
 
开发者ID:derickr,项目名称:josm-plugin-uberterrace,代码行数:33,代码来源:HouseNumberInputHandler.java


示例11: getNumbers

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
/**
 * This method initializes numbers
 *
 * @return javax.swing.JTextField
 */
private JTextField getNumbers() {
    if (numbers == null) {
        numbers = new JTextField();

        Iterator<Node> it = housenumbers.iterator();
        StringBuilder s = new StringBuilder(256);
        if (it.hasNext()) {
            s.append(it.next().get("addr:housenumber"));
            while (it.hasNext()) {
                s.append(';').append(it.next().get("addr:housenumber"));
            }
        } else {
            numbersLabel.setVisible(false);
            numbers.setVisible(false);
        }

        numbers.setText(s.toString());
        numbers.setEditable(false);
    }
    return numbers;
}
 
开发者ID:derickr,项目名称:josm-plugin-uberterrace,代码行数:27,代码来源:HouseNumberInputDialog.java


示例12: interpolateAlong

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
/**
 * Creates a node at a certain distance along a way, as calculated by the
 * great circle distance.
 *
 * Note that this really isn't an efficient way to do this and leads to
 * O(N^2) running time for the main algorithm, but its simple and easy
 * to understand, and probably won't matter for reasonable-sized ways.
 *
 * @param w The way to interpolate.
 * @param l The length at which to place the node.
 * @return A node at a distance l along w from the first point.
 */
private Node interpolateAlong(Way w, double l) {
    List<Pair<Node,Node>> pairs = w.getNodePairs(false);
    for (int i = 0; i < pairs.size(); ++i) {
        Pair<Node,Node> p = pairs.get(i);
        final double seg_length = p.a.getCoor().greatCircleDistance(p.b.getCoor());
        if (l <= seg_length || i == pairs.size() - 1) {
            // be generous on the last segment (numerical roudoff can lead to a small overshoot)
            return interpolateNode(p.a, p.b, l / seg_length);
        } else {
            l -= seg_length;
        }
    }
    // we shouldn't get here
    throw new IllegalStateException();
}
 
开发者ID:derickr,项目名称:josm-plugin-uberterrace,代码行数:28,代码来源:TerracerAction.java


示例13: extractRelation

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
private void extractRelation(Relation rel) {
	List <RelationMember> members = rel.getMembers();
	for(RelationMember x : members) {
		if(x.getRole().equals("forward") || x.getRole().equals("backward") || x.getRole().equals(""))
			if(x.getType()==OsmPrimitiveType.WAY) {
				Way w = x.getWay();
				List <Node> y = w.getNodes();
				for(int i=0; i<y.size()-1; i++) {
					Node a = y.get(i);
					Node b = y.get(i+1);
					Pair <Node, Node> tmp2 = new Pair<>(a,b);
					pairsRelations.add(tmp2);
				}
			}
	}
}
 
开发者ID:ztmtoosm,项目名称:easy-routes,代码行数:17,代码来源:DiffLayer.java


示例14: completeNetwork

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
public List<Node> completeNetwork(List<Node> middleNodes, boolean newDData)
		throws NodeConnectException {
	if(newDData || osmNodeToRoutingNode==null || routingNodeToOsmNode==null)
		updateAllData();
	List<RoutingNode> wezly = new ArrayList<RoutingNode>();
	for (int i = 0; i < middleNodes.size() - 1; i++) {
		List<RoutingNode> wezlyTmp = dijkstraData.calculate(
				osmNodeToRoutingNode.get(middleNodes.get(i)),
				osmNodeToRoutingNode.get(middleNodes.get(i + 1)));
		if (i > 0)
			wezlyTmp = wezlyTmp.subList(1, wezlyTmp.size());
		wezly.addAll(wezlyTmp);
	}
	List<Node> wynik = new ArrayList<Node>();
	for (int i = 0; i < wezly.size(); i++) {
		wynik.add(routingNodeToOsmNode.get(wezly.get(i)));
	}
	return wynik;
}
 
开发者ID:ztmtoosm,项目名称:easy-routes,代码行数:20,代码来源:RoutingSpecial.java


示例15: actionPerformed

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
@Override
  public void actionPerformed(ActionEvent e) {
      if (!isEnabled() || !Main.map.mapView.isActiveLayerVisible())
          return;

      Collection<OsmPrimitive> selection = getCurrentDataSet().getSelected();
      List<Node> selection2 = OsmPrimitive.getFilteredList(selection, Node.class);
      if(selection2.size()<=1)
      {
          new Notification(
                  tr("Two or more nodes are necessary."))
                  .setIcon(JOptionPane.WARNING_MESSAGE)
                  .show();
      }
      RoutingLayer lay;
lay = new RoutingLayer(selection2, "xxx", new RoutingSpecial(Main.pref.getArray("easy-routes.weights")));
      Main.main.addLayer(lay);
  }
 
开发者ID:ztmtoosm,项目名称:easy-routes,代码行数:19,代码来源:LayNodesAction.java


示例16: foo3

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
void foo3(List<Node> lis) {
	try {
		Collection<Collection<String>> aktPreferences = Main.pref
				.getArray("easy-routes.weights");
		RoutingSpecial ws = new RoutingSpecial(aktPreferences);
		ws.splitWays(lis);
		getCurrentDataSet().clearSelection();
		List<Way> xd = ws.getWaysAfterSplit(lis);
		for (Way x : xd) {
			getCurrentDataSet().addSelected(x);
		}
	} catch (NodeConnectException e) {
		e.printStackTrace();
		new Notification(tr("Nodes are not connect together")).setIcon(
				JOptionPane.WARNING_MESSAGE).show();
	}
}
 
开发者ID:ztmtoosm,项目名称:easy-routes,代码行数:18,代码来源:ConnectNodesAction.java


示例17: actionPerformed

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
@Override
public void actionPerformed(ActionEvent e) {
	if (!isEnabled() || !Main.map.mapView.isActiveLayerVisible())
		return;

	Collection<OsmPrimitive> selection = getCurrentDataSet().getSelected();
	List<Node> selection2 = OsmPrimitive.getFilteredList(selection,
			Node.class);
	List<Way> selection3 = OsmPrimitive.getFilteredList(selection,
			Way.class);
	if (selection2.size() > 1) {
		foo3(selection2);

	} else if (selection3.size()==2) {
		foo4(selection3);
	} else {
		new Notification(tr("Two or more nodes are necessary, or two ways.")).setIcon(
				JOptionPane.WARNING_MESSAGE).show();
	}
}
 
开发者ID:ztmtoosm,项目名称:easy-routes,代码行数:21,代码来源:ConnectNodesAction.java


示例18: getAllNodes

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
public List <Node> getAllNodes() {
	if(middleNodes==null)
		return null;
	List <Node> wynik = new ArrayList<>();
	for(int i=0; i<middleNodes.size(); i++) {
		List <Node> mid = middleNodes.get(i);
		if(mid==null)
			return null;
		if(mid.size()<2)
			return null;
		for(int j=0; j<mid.size(); j++) {
			Node akt = mid.get(j);
			if(j>0 || i==0)
				wynik.add(akt);
		}
	}
	return wynik;
}
 
开发者ID:ztmtoosm,项目名称:easy-routes,代码行数:19,代码来源:RoutingLayer.java


示例19: getMiddleNodeId

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
private int getMiddleNodeId(Node n) {
	boolean containsAll = false;
	for(int i=0; i<middleNodes.size(); i++) {
		if(middleNodes.get(i)!=null && middleNodes.get(i).contains(n))
			containsAll = true;
	}
	if(!containsAll)
		return -1;
	if(crucialNodes.contains(n))
		return -1;
	for(int i=0; i<middleNodes.size(); i++) {
		if(middleNodes.get(i)!=null && middleNodes.get(i).contains(n))
			return i+1;
	}
	return -1;
}
 
开发者ID:ztmtoosm,项目名称:easy-routes,代码行数:17,代码来源:RoutingLayer.java


示例20: odswiez

import org.openstreetmap.josm.data.osm.Node; //导入依赖的package包/类
public void odswiez() {
	middleNodes = new ArrayList<>();
	boolean cale = true;
	for(int i=0; i<crucialNodes.size()-1; i++) {
		Node left = crucialNodes.get(i);
		Node right = crucialNodes.get(i+1);
		List <Node> tmp = new ArrayList<>();
		tmp.add(left);
		tmp.add(right);
		try {
			middleNodes.add(ws.completeNetwork(tmp, false));
		} catch (NodeConnectException e) {
			middleNodes.add(null);
			setName(desc+" NIEPOŁĄCZONE LINIE!");
			cale = false;
		}
	}
	if(cale)
		setName(desc);
	Main.map.repaint();
}
 
开发者ID:ztmtoosm,项目名称:easy-routes,代码行数:22,代码来源:RoutingLayer.java



注:本文中的org.openstreetmap.josm.data.osm.Node类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java TaskRecoverEvent类代码示例发布时间:2022-05-22
下一篇:
Java SetReplicationRequestProto类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap