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

Java Way类代码示例

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

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



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

示例1: getLevel

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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: createWay

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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


示例3: searchBusStop

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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


示例4: clearExcessTags

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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


示例5: createSeparateBusStopNode

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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


示例6: getCenterOfWay

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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


示例7: startImproving

import org.openstreetmap.josm.data.osm.Way; //导入依赖的package包/类
/**
 * Switches to Improving state
 *
 * @param targetWay Way that is going to be improved
 */
public void startImproving(Way targetWay) {
    state = State.improving;

    Collection<OsmPrimitive> currentSelection = getCurrentDataSet().getSelected();
    if (currentSelection.size() != 1
            || !currentSelection.iterator().next().equals(targetWay)) {
        selectionChangedBlocked = true;
        getCurrentDataSet().clearSelection();
        getCurrentDataSet().setSelected(targetWay.getPrimitiveId());
        selectionChangedBlocked = false;
    }

    this.targetWay = targetWay;
    this.candidateNode = null;
    this.candidateSegment = null;

    mv.repaint();
    updateStatusLine();
}
 
开发者ID:kolesar-andras,项目名称:josm-plugin-improve-way,代码行数:25,代码来源:ImproveWayAccuracyAction.java


示例8: HouseNumberInputHandler

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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


示例9: interpolateAlong

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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


示例10: calculateSideness

import org.openstreetmap.josm.data.osm.Way; //导入依赖的package包/类
/**
 * Calculate "sideness" metric for each segment in a way.
 */
private double[] calculateSideness(Way w) {
    final int length = w.getNodesCount() - 1;
    double[] sideness = new double[length];

    sideness[0] = calculateSideness(w.getNode(length - 1), w.getNode(0), w
            .getNode(1), w.getNode(2));
    for (int i = 1; i < length - 1; ++i) {
        sideness[i] = calculateSideness(w.getNode(i - 1), w.getNode(i), w
                .getNode(i + 1), w.getNode(i + 2));
    }
    sideness[length - 1] = calculateSideness(w.getNode(length - 2), w
            .getNode(length - 1), w.getNode(length), w.getNode(1));

    return sideness;
}
 
开发者ID:derickr,项目名称:josm-plugin-uberterrace,代码行数:19,代码来源:TerracerAction.java


示例11: extractRelation

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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


示例12: putRelationWays

import org.openstreetmap.josm.data.osm.Way; //导入依赖的package包/类
public void putRelationWays(Relation x) {
	if(lay==null)
		return;
	List<Way> toAdd;
	List<String> forBack = new ArrayList<>();
	try {
		toAdd = lay.splitWays(forBack);
	int i=0;
	for(Way y : toAdd) {
		String foo = "";
		if(forBack!=null && forBack.size()>i && forBack.get(i)!=null)
			foo=forBack.get(i);
		RelationMember member = new RelationMember(foo, y);
		x.addMember(member);
		i++;
	}
	}catch (NodeConnectException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
 
开发者ID:ztmtoosm,项目名称:easy-routes,代码行数:22,代码来源:SingleRelationBuilder.java


示例13: foo3

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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


示例14: actionPerformed

import org.openstreetmap.josm.data.osm.Way; //导入依赖的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


示例15: addToGraph

import org.openstreetmap.josm.data.osm.Way; //导入依赖的package包/类
public void addToGraph(Node n, Relation g) {
    if(!g.getMemberPrimitives().contains(n)) {
        Main.debug("> Add node to relation");
        g.addMember(new RelationMember(Constants.OSM_RELATION_ROLE_STATE, n));
        // WORKAROUND2: Add to the graph the ways linked to the node
        for(OsmPrimitive p : n.getReferrers(false)) {
            if(p instanceof Way) {
                Main.debug("> I found a related way");
                addToGraph((Way)p, g);
            }
        }
    }
}
 
开发者ID:STEMLab,项目名称:JOSM-IndoorEditor,代码行数:14,代码来源:FloorsFilterDialog.java


示例16: zoomTo

import org.openstreetmap.josm.data.osm.Way; //导入依赖的package包/类
/**
 * Focus the map on a specific OSM primitive
 *
 * @param primitive
 *            The primitive to zoom to
 */
private void zoomTo(final OsmPrimitive primitive) {
    if (primitive == null) {
        return;
    }
    if (primitive instanceof Node) {
        MainApplication.getMap().mapView.zoomTo(((Node) primitive).getCoor());
        return;
    }
    final BoundingXYVisitor v = new BoundingXYVisitor();
    v.visit((Way) primitive);
    MainApplication.getMap().mapView.zoomTo(v.getBounds());
}
 
开发者ID:JOSM,项目名称:geojson,代码行数:19,代码来源:GeoJsonDialog.java


示例17: processLineString

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

    fillTagsFromFeature(feature, way);
}
 
开发者ID:JOSM,项目名称:geojson,代码行数:9,代码来源:DataSetBuilder.java


示例18: getNearestNode

import org.openstreetmap.josm.data.osm.Way; //导入依赖的package包/类
/**
 * Search of nearest points on ways 
 * @param platformCoord Platform coordinates 
 * @param stopArea Stop area object
 * @return Dictionary of founded points and distances from platform
 */
public AbstractMap.SimpleEntry<Double, Node> getNearestNode(LatLon platformCoord, StopArea stopArea)
{
	Point p = Main.map.mapView.getPoint(platformCoord);
	Map<Double, List<Node>> dist_nodes = getNearestNodesImpl(p);
	Double[] distances = dist_nodes.keySet().toArray(new Double[0]);
	distances = sort(distances);
	Integer distanceIndex = -1;
	Node nearestNode = null;
	while(++distanceIndex < distances.length && nearestNode == null)
	{
		List<Node> nodes = dist_nodes.get(distances[distanceIndex]);
		for(Node node : nodes)
		{
			for(Way way : getCurrentDataSet().getWays())
			{
				if(way.getNodes().contains(node) && testWay(way, stopArea))
				{
					nearestNode = node;
					return new AbstractMap.SimpleEntry<Double, Node> (distances[distanceIndex], nearestNode);
				}
			}
			if(nearestNode != null)
				break;
		}
	}
	return null;
}
 
开发者ID:bwr57,项目名称:CustomizePublicTransportStop,代码行数:34,代码来源:CreateNewStopPointOperation.java


示例19: testWay

import org.openstreetmap.josm.data.osm.Way; //导入依赖的package包/类
/**
 * Selection of ways for stop position by type of way and type of stop
 * @param way The way
 * @param stopArea Stop area
 * @return true, if way can contain stop position
 */
public Boolean testWay(Way way, StopArea stopArea)
{
	if(stopArea.isTrainStation || stopArea.isTrainStop)
	{
		if(OSMTags.RAIL_TAG_VALUE.equals(way.getKeys().get(OSMTags.RAILWAY_TAG)) && OSMTags.MAIN_TAG_VALUE.equals(way.getKeys().get(OSMTags.USAGE_TAG)))
			return true;
		return false;
	}

	if(stopArea.isTram)
	{
		if(OSMTags.TRAM_TAG_VALUE.equals(way.getKeys().get(OSMTags.RAILWAY_TAG)))
			return true;
		return false;
	}
	
	String[] highwayValues = {OSMTags.TRUNK_TAG_VALUE, OSMTags.PRIMARY_TAG_VALUE, OSMTags.SECONDARY_TAG_VALUE, OSMTags.TERTIARY_TAG_VALUE,
			OSMTags.UNCLASSIFIED_TAG_VALUE, OSMTags.RESIDENTIAL_TAG_VALUE, OSMTags.SERVICE_TAG_VALUE,
			OSMTags.BUS_GUIDEWAY_TAG_VALUE, OSMTags.ROAD_TAG_VALUE, OSMTags.TRUNK_LINK_TAG_VALUE, 
			OSMTags.PRIMARY_LINK_TAG_VALUE, OSMTags.SECONDARY_LINK_TAG_VALUE, OSMTags.TERTIARY_LINK_TAG_VALUE };
	if(stopArea.isBus || stopArea.isTrolleybus || stopArea.isShareTaxi)
	{
		String highway = way.getKeys().get(OSMTags.HIGHWAY_TAG);
		if(highway != null)
		for(Integer i = 0; i < highwayValues.length; i++)
		{
			if(highwayValues[i].equals(highway))
				return true;
		}
	}
	return false;
}
 
开发者ID:bwr57,项目名称:CustomizePublicTransportStop,代码行数:39,代码来源:CreateNewStopPointOperation.java


示例20: createNodeOnWay

import org.openstreetmap.josm.data.osm.Way; //导入依赖的package包/类
/**
 * Creation of stop position node on nearest way
 * @param newStopNode New stop position node
 * @param waySegment Way segment including stop position node
 * @return Stop position node
 */
protected Node createNodeOnWay(Node newStopNode, WaySegment waySegment)
{
	Main.main.undoRedo.add(new AddCommand(newStopNode));
	List<Node> wayNodes = waySegment.way.getNodes();
	wayNodes.add(waySegment.lowerIndex + 1, newStopNode); 
	Way newWay = new Way(waySegment.way);
	newWay.setNodes(wayNodes);
	Main.main.undoRedo.add(new ChangeCommand(waySegment.way, newWay));
	return newStopNode;
}
 
开发者ID:bwr57,项目名称:CustomizePublicTransportStop,代码行数:17,代码来源:CreateNewStopPointOperation.java



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Java ColorEditor类代码示例发布时间:2022-05-22
下一篇:
Java LockInfoCompositeData类代码示例发布时间: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