本文整理了Java中org.matsim.core.utils.collections.QuadTree.getDisk
方法的一些代码示例,展示了QuadTree.getDisk
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QuadTree.getDisk
方法的具体详情如下:
包路径:org.matsim.core.utils.collections.QuadTree
类名称:QuadTree
方法名:getDisk
[英]Gets all objects within a certain distance around x/y
[中]获取x/y周围一定距离内的所有对象
代码示例来源:origin: matsim-org/matsim
public Collection<T> getRing(final double x, final double y, final double outerRadius, final double innerradius) {
Collection<T> locations = super.getDisk(x, y, outerRadius);
Collection<T> innerLocations = super.getDisk(x, y, innerradius);
locations.removeAll(innerLocations);
return locations;
}
}
代码示例来源:origin: matsim-org/matsim
public Collection<TransitRouterNetworkNode> getNearestNodes(final Coord coord, final double distance) {
return this.qtNodes.getDisk(coord.getX(), coord.getY(), distance);
}
代码示例来源:origin: matsim-org/matsim
public Collection<TransitRouterNetworkNode> getNearestNodes(final Coord coord, final double distance) {
return this.qtNodes.getDisk(coord.getX(), coord.getY(), distance);
}
代码示例来源:origin: matsim-org/matsim
public Collection<TransitStopFacility> getNearestTransitStopFacilities(final Coord coord, final double distance) {
return this.quadTree.getDisk(coord.getX(), coord.getY(), distance);
}
代码示例来源:origin: matsim-org/matsim
/**
* finds the nodes within distance to <code>coord</code>
*
* @param coord the coordinate around which nodes should be located
* @param distance the maximum distance a node can have to <code>coord</code> to be found
* @return all nodes within distance to <code>coord</code>
*/
@Override public Collection<Node> getNearestNodes(final Coord coord, final double distance) {
if (this.nodeQuadTree == null) { buildQuadTree(); }
return this.nodeQuadTree.getDisk(coord.getX(), coord.getY(), distance);
}
代码示例来源:origin: matsim-org/matsim
/**
* finds the nodes within distance to <code>coord</code>
*
* @param coord the coordinate around which nodes should be located
* @param distance the maximum distance a node can have to <code>coord</code> to be found
* @return all nodes within distance to <code>coord</code>
*/
@Override public Collection<ActivityFacility> getNearestFacilities(final Coord coord, final double distance) {
if (this.facilitiesQuadTree == null) { buildQuadTree(); }
return this.facilitiesQuadTree.getDisk(coord.getX(), coord.getY(), distance);
}
代码示例来源:origin: matsim-org/matsim
private Map<TransitStopFacility, HashMap<WrappedTransitRouteStop, TransferEntryPointer>> createTransfers(Map<TransitStopFacility, Set<Id<TransitRoute>>> transitStopFacilities2RouteIdsServed, Map<WrappedTransitRouteStop, Id<TransitRoute>> routeStop2routeId, double maxBeelineWalkConnectionDistance) {
Map<TransitStopFacility, HashMap<WrappedTransitRouteStop, TransferEntryPointer>> stop2TransitRouteStop2Transfers = new HashMap<>();
QuadTree<WrappedTransitRouteStop> transitRouteStopQuadTree = this.createTransitRouteStopQuadTree(routeStop2routeId.keySet());
// create transfers for all transit route stops if they're located less than beelineWalkConnectionDistance from each other
for (TransitStopFacility sourceStop : transitStopFacilities2RouteIdsServed.keySet()) {
// (just goes through all stops)
HashMap<WrappedTransitRouteStop, TransferEntryPointer> transfersFromThis = new HashMap<WrappedTransitRouteStop, TransferEntryPointer>();
for (WrappedTransitRouteStop destinationStop : transitRouteStopQuadTree.getDisk(sourceStop.getCoord().getX(), sourceStop.getCoord().getY(), maxBeelineWalkConnectionDistance)) {
// (goes through all stops within walkConnectionDistance)
double transferTime = this.raptorDisutility.getTransferTime(sourceStop.getCoord(), destinationStop.transitRouteStop.getStopFacility().getCoord());
transfersFromThis.put(destinationStop, new TransferEntryPointer(-1, transferTime, destinationStop, routeStop2routeId.get(destinationStop)));
// (memorize: (1) which stop the walk goes to; (2) route id associated with that stop (presumably one stop per route even at same location)
}
stop2TransitRouteStop2Transfers.put(sourceStop, transfersFromThis);
}
int transfersAdded = 0;
for (HashMap<WrappedTransitRouteStop, TransferEntryPointer> routeStop2Transfers : stop2TransitRouteStop2Transfers.values()) {
transfersAdded += routeStop2Transfers.size();
}
log.info("Added " + transfersAdded + " transfers (from each transit stop facility to each other transit route stop within " + maxBeelineWalkConnectionDistance + "m beeline distance.");
return stop2TransitRouteStop2Transfers;
}
代码示例来源:origin: matsim-org/matsim
@Test
public void testGetDistance_fromOutsideExtent() {
QuadTree<String> qt = getTestTree();
assertContains(new String[] {"100.0, 0.0"}, qt.getDisk(160.0, 0, 60.1)); // E
assertContains(new String[] {"15.0, 15.0", "15.0, 15.0 B"}, qt.getDisk(15.0, 160, 145.1)); // N
assertContains(new String[] {"-15.0, 0.0"}, qt.getDisk(-60.0, 0, 45.1)); // W
assertContains(new String[] {"100.0, 0.0"}, qt.getDisk(100.0, -60, 60.1)); // S
}
代码示例来源:origin: matsim-org/matsim
public ArrayList<ActivityFacility> computeChoiceSetCircle(Coord coordStart, Coord coordEnd,
double radius, String type) {
double midPointX = (coordStart.getX()+coordEnd.getX())/2.0;
double midPointY = (coordStart.getY()+coordEnd.getY())/2.0;
return (ArrayList<ActivityFacility>) this.quadTreesOfType.get(this.defineFlexibleActivities.getConverter().convertType(type)).
getDisk(midPointX, midPointY, radius);
}
代码示例来源:origin: matsim-org/matsim
@Test
public void testGetDistance_EntryOnDividingBorder() {
QuadTree<String> qt = new QuadTree<>(0, 0, 40, 60);
qt.put(10.0, 10.0, "10.0, 10.0");
qt.put(20.0, 20.0, "20.0, 20.0"); // on vertical border
qt.put(20.0, 30.0, "20.0, 30.0"); // exactly on center
qt.put(30.0, 30.0, "30.0, 30.0"); // on horizontal border
qt.put(12.0, 15.0, "12.0, 15.0");
qt.put(10.0, 25.0, "10.0, 25.0");
assertContains(new String[] {"10.0, 10.0"}, qt.getDisk(10.0, 7.0, 3.0));
assertContains(new String[] {"10.0, 10.0"}, qt.getDisk(10.0, 12.0, 2.0));
assertContains(new String[] {"10.0, 10.0"}, qt.getDisk(7.0, 10.0, 3.0));
assertContains(new String[] {"10.0, 10.0"}, qt.getDisk(13.0, 10.0, 3.0));
assertContains(new String[] {"20.0, 20.0"}, qt.getDisk(20.0, 23.0, 3.0));
assertContains(new String[] {"20.0, 30.0"}, qt.getDisk(20.0, 27.0, 3.0));
assertContains(new String[] {"30.0, 30.0"}, qt.getDisk(27.0, 30.0, 3.0));
assertContains(new String[] {"12.0, 15.0"}, qt.getDisk(15.0, 15.0, 3.0));
assertContains(new String[] {"10.0, 25.0"}, qt.getDisk(10.0, 28.0, 3.0));
}
代码示例来源:origin: matsim-org/matsim
Collection<ClusterActivity> neighbourhood = quadTree.getDisk(p.getCoord().getX(), p.getCoord().getY(), radius);
List<ClusterActivity> uN = new ArrayList<ClusterActivity>(neighbourhood.size());
List<ClusterActivity> cN = new ArrayList<ClusterActivity>(neighbourhood.size());
代码示例来源:origin: matsim-org/matsim
protected final boolean modifyLocation(Activity act, Coord startCoord, Coord endCoord, double radius) {
double midPointX = (startCoord.getX() + endCoord.getX()) / 2.0;
double midPointY = (startCoord.getY() + endCoord.getY()) / 2.0;
ArrayList<ActivityFacility> facilitySet =
(ArrayList<ActivityFacility>) this.quadTreesOfType.get(this.defineFlexibleActivities.getConverter().convertType(act.getType())).
getDisk(midPointX, midPointY, radius);
ActivityFacility facility = null;
if (facilitySet.size() > 1) {
facility = facilitySet.get(super.random.nextInt(facilitySet.size()));
}
else {
return false;
}
act.setFacilityId(facility.getId());
act.setLinkId(NetworkUtils.getNearestLink(((Network) this.scenario.getNetwork()), facility.getCoord()).getId());
act.setCoord(facility.getCoord());
return true;
}
代码示例来源:origin: matsim-org/matsim
@Test
public void testGetDistance_EntryOnOutsideBorder() {
QuadTree<String> qt = new QuadTree<>(0.0, 0.0, 40.0, 60.0);
// the 4 corners
qt.put(0.0, 0.0, "SW");
qt.put(40.0, 0.0, "SE");
qt.put(0.0, 60.0, "NW");
qt.put(40.0, 60.0, "NE");
// the 4 sides
qt.put(10.0, 60.0, "N");
qt.put(40.0, 10.0, "E");
qt.put(10.0, 0.0, "S");
qt.put(0.0, 10.0, "W");
assertContains(new String[] {"SW"}, qt.getDisk(3.0, 0.0, 3.0));
assertContains(new String[] {"SE"}, qt.getDisk(40.0, 3.0, 3.0));
assertContains(new String[] {"NW"}, qt.getDisk(3.0, 60.0, 3.0));
assertContains(new String[] {"NE"}, qt.getDisk(40.0, 57.0, 3.0));
assertContains(new String[] {"N"}, qt.getDisk(7.0, 60.0, 3.0));
assertContains(new String[] {"E"}, qt.getDisk(40.0, 13.0, 3.0));
assertContains(new String[] {"S"}, qt.getDisk(13.0, 0.0, 3.0));
assertContains(new String[] {"W"}, qt.getDisk(3.0, 10.0, 3.0));
}
代码示例来源:origin: matsim-org/matsim
Collection<ActivityFacilityWithIndex> list = this.quadTreesOfType.get(convertedType).getDisk(center.getX(), center.getY(), maxRadius);
代码示例来源:origin: matsim-org/matsim
Collection<String> values = qt.getDisk(15.0, 15.0, 1.0);
assertEquals(2, values.size());
assertTrue(values.contains("15.0, 15.0"));
values = qt.getDisk(15.0, 15.0, 0.0);
assertEquals(2, values.size());
assertTrue(values.contains("15.0, 15.0"));
values = qt.getDisk(9.0, 9.0, 10.0);
assertEquals(3, values.size());
assertTrue(values.contains("10.0, 10.0"));
values = qt.getDisk(50.0, 0.0, 51.0);
assertEquals(5, values.size());
assertTrue(values.contains("100.0, 0.0"));
values = qt.getDisk(90.0, 0.0, 9.0);
assertEquals("test with distance 9.0", 0, values.size());
values = qt.getDisk(90.0, 0.0, 9.999);
assertEquals("test with distance 9.999", 0, values.size());
values = qt.getDisk(90.0, 0.0, 10.0);
assertEquals("test with distance 10.0", 1, values.size());
values = qt.getDisk(90.0, 0.0, 10.001);
assertEquals("test with distance 10.001", 1, values.size());
values = qt.getDisk(90.0, 0.0, 11.0);
内容来源于网络,如有侵权,请联系作者删除!