21 package org.matsim.facilities;
23 import org.apache.logging.log4j.LogManager;
24 import org.apache.logging.log4j.Logger;
34 import java.util.Collection;
35 import java.util.Iterator;
37 import java.util.Map.Entry;
38 import java.util.TreeMap;
87 throw new IllegalArgumentException(
"Facility with id=" +
id +
" already exists.");
93 if (this.facilities.
size() % this.nextMsg == 0) {
95 log.info(
" facility # " + this.facilities.
size() );
114 Iterator<ActivityFacility> iter = this.facilities.
values().iterator();
115 while (iter.hasNext()){
118 if(a.containsKey(act_type)){
119 facs.put(f.
getId(),f);
139 throw new IllegalArgumentException(
"Facility with id=" + facility.
getId() +
" already exists.");
142 this.facilities.
put(facility.
getId(),facility);
152 StringBuilder stb =
new StringBuilder(200);
153 stb.append(super.toString());
155 stb.append(
"[number of facilities=");
156 stb.append(this.facilities.
size());
161 stb.append(entry.getKey().toString());
162 stb.append(
"; value=");
163 stb.append(fac.toString());
167 return stb.toString();
174 if (this.facilitiesQuadTree != null) {
177 double startTime = System.currentTimeMillis();
178 double minx = Double.POSITIVE_INFINITY;
179 double miny = Double.POSITIVE_INFINITY;
180 double maxx = Double.NEGATIVE_INFINITY;
181 double maxy = Double.NEGATIVE_INFINITY;
183 if (n.getCoord().getX() < minx) { minx = n.getCoord().getX(); }
184 if (n.getCoord().getY() < miny) { miny = n.getCoord().getY(); }
185 if (n.getCoord().getX() > maxx) { maxx = n.getCoord().getX(); }
186 if (n.getCoord().getY() > maxy) { maxy = n.getCoord().getY(); }
194 log.info(
"building QuadTree for nodes: xrange(" + minx +
"," + maxx +
"); yrange(" + miny +
"," + maxy +
")");
197 quadTree.
put(n.getCoord().getX(), n.getCoord().getY(), n);
202 this.facilitiesQuadTree = quadTree;
203 log.info(
"Building QuadTree took " + ((System.currentTimeMillis() - startTime) / 1000.0) +
" seconds.");
227 return this.facilitiesQuadTree.
getDisk(coord.
getX(), coord.
getY(), distance);
final Id< ActivityFacility > getId()
final void addActivityFacility(ActivityFacility facility)
final ActivityFacilitiesFactory factory
Collection< ActivityFacility > getNearestFacilities(final Coord coord, final double distance)
Set< Map.Entry< Id< T >, V > > entrySet()
final ActivityFacilityImpl createAndAddFacility(final Id< ActivityFacility > id, final Coord center, final Id< Link > linkId)
FailingObjectAttributes getFacilityAttributes()
boolean containsKey(Object key)
static FailingObjectAttributes createFacilitiesAttributes()
void setName(String name)
ActivityFacilitiesImpl(final String name)
final TreeMap< Id< ActivityFacility >, ActivityFacility > getFacilitiesForActivityType(final String act_type)
Attributes getAttributes()
final Attributes attributes
synchronized void buildQuadTree()
ActivityFacility getNearestFacility(final Coord coord)
boolean put(final double x, final double y, final T value)
final ActivityFacilityImpl createAndAddFacility(final Id< ActivityFacility > id, final Coord center)
T getClosest(final double x, final double y)
final IdMap< ActivityFacility, ActivityFacility > facilities
Collection< T > getDisk(final double x, final double y, final double distance)
Map< String, ActivityOption > getActivityOptions()
ActivityFacilitiesFactory getFactory()
V put(Id< T > key, V value)
QuadTree< ActivityFacility > facilitiesQuadTree
final Map< Id< ActivityFacility >, ? extends ActivityFacility > getFacilities()