@Override public void addActivityOption(ActivityOption option) { this.activityFacility.addActivityOption(option); }
private void startActivity(final Attributes atts) { this.curractivity = this.factory.createActivityOption(atts.getValue("type")); this.currfacility.addActivityOption(this.curractivity); }
public static void combineDifferentActivityOptionTypes(final Scenario scenario, String combinedType, final List<String> activityOptionsToBeIncluded) { ActivityOption markerOption = new ActivityOptionImpl(combinedType); // Memorize all facilities that have certain activity options in a activity facilities container final ActivityFacilities consideredFacilities = FacilitiesUtils.createActivityFacilities(); for (ActivityFacility facility : scenario.getActivityFacilities().getFacilities().values()) { for (ActivityOption option : facility.getActivityOptions().values()) { if (activityOptionsToBeIncluded.contains(option.getType())) { // if (!option.getType().equals(FacilityTypes.HOME) && !option.getType().equals(FacilityTypes.WORK) && !option.getType().equals("minor")) { if (!consideredFacilities.getFacilities().containsKey(facility.getId())) { consideredFacilities.addActivityFacility(facility); } } } } // Add marker option to facilities to be considered for (ActivityFacility facility : consideredFacilities.getFacilities().values()) { facility.addActivityOption(markerOption); } }
private void createFacility( ActivityFacilitiesFactory activityFacilityFactory, Entity entity, String name, Coord coord, String activityType) { Id<ActivityFacility> facilityId = Id.create(idPrefix + entity.getId(), ActivityFacility.class); ActivityFacility activityFacility; // activity facility if(!facilities.getFacilities().containsKey(facilityId)){ activityFacility = activityFacilityFactory.createActivityFacility(facilityId, coord); ((ActivityFacilityImpl)activityFacility).setDesc(name); facilities.addActivityFacility(activityFacility); } else{ activityFacility = (ActivityFacilityImpl) facilities.getFacilities().get(facilityId); } ActivityOption activityOption = activityFacilityFactory.createActivityOption(activityType); // activity option if(!activityFacility.getActivityOptions().containsKey(activityType)) { activityFacility.addActivityOption(activityOption); } }
/** * Parses a given <i>OpenStreetMap</i> file for data in it that can be converted into MATSim facilities. */ public void parseOsmFileAndAddFacilities(Map<String, String> osmToMatsimTypeMap, String osmKey) { OsmPoiSink sink = new OsmPoiSink(this.ct, osmToMatsimTypeMap, osmKey, useGeneralTypeIsSpecificTypeUnknown); XmlReader xmlReader = new XmlReader(inputFile, false, CompressionMethod.None); xmlReader.setSink(sink); xmlReader.run(); for (ActivityFacility af : sink.getFacilities().getFacilities().values()) { if (!this.facilities.getFacilities().containsKey(af.getId())) { this.facilities.addActivityFacility(af); } else { for (ActivityOption activityOption : af.getActivityOptions().values()) { ActivityFacility activityFacility = this.facilities.getFacilities().get(af.getId()); if (!activityFacility.getActivityOptions().containsKey(activityOption.getType())) { this.facilities.getFacilities().get(af.getId()).addActivityOption(activityOption); } } } } }
facility.addActivityOption(aff.createActivityOption(activityType)); facilities.addActivityFacility(facility);
private void processFacilities(ActivityFacilitiesFactory aff, Map<Long,? extends EntityContainer> entityMap, String osmKey) { for (long n : entityMap.keySet()){ Entity entity = entityMap.get(n).getEntity(); Map<String, String> tags = new TagCollectionImpl(entity.getTags()).buildMap(); String amenity = tags.get(osmKey); String matsimType = null; if (amenity != null) { matsimType = getActivityType(amenity, osmKey); } if (matsimType != null){ String name = tags.get(OsmTags.NAME); name = AccessibilityOsmUtils.simplifyString(name); Coord coord = OSMCoordUtils.getCentroidCoord(entity, this.ct, this.nodeMap, this.wayMap, this.relationMap); Id<ActivityFacility> newId = Id.create(entity.getId(), ActivityFacility.class); ActivityFacility af; if(!facilities.getFacilities().containsKey(newId)){ af = aff.createActivityFacility(newId, coord); ((ActivityFacilityImpl)af).setDesc(name); facilities.addActivityFacility(af); } else{ af = (ActivityFacilityImpl) facilities.getFacilities().get(newId); } ActivityOption ao = aff.createActivityOption(matsimType); af.addActivityOption(ao); } } }
af.addActivityOption(ao); af.addActivityOption(ao);
activityFacility.addActivityOption(aactivityOption);
if (option == null) { option = factory.createActivityOption(actType); facility.addActivityOption(option);
fac1.addActivityOption(new ActivityOptionImpl("home")); facilities.addActivityFacility(fac1); ActivityOptionImpl shopOption = new ActivityOptionImpl("shop"); shopOption.addOpeningTime(new OpeningTimeImpl(8*3600, 20*3600)); fac2.addActivityOption(shopOption); facilities.addActivityFacility(fac2);
fac1.addActivityOption(new ActivityOptionImpl("home")); fac1.getAttributes().putAttribute("size_m2", 100); facilities.addActivityFacility(fac1); ActivityOptionImpl shopOption = new ActivityOptionImpl("shop"); shopOption.addOpeningTime(new OpeningTimeImpl(8*3600, 20*3600)); fac2.addActivityOption(shopOption); fac2.getAttributes().putAttribute("size_m2", 500); facilities.addActivityFacility(fac2);
@Override protected void setUp() throws Exception { super.setUp(); final Config config = ConfigUtils.createConfig(); final Scenario scenario = ScenarioUtils.createScenario( config ); this.facilities = scenario.getActivityFacilities() ; // create facilities, activities in it and open times final ActivityFacilitiesFactory facilitiesFactory = this.facilities.getFactory(); Coord defaultCoord = new Coord(0.0, 0.0); ActivityFacility testFacility = facilitiesFactory.createActivityFacility(Id.create(0, ActivityFacility.class), defaultCoord) ; this.facilities.addActivityFacility(testFacility); ActivityOption ao = facilitiesFactory.createActivityOption("shop") ; testFacility.addActivityOption(ao); ao.addOpeningTime(new OpeningTimeImpl(6.0 * 3600, 11.0 * 3600)); ao.addOpeningTime(new OpeningTimeImpl(13.0 * 3600, 19.0 * 3600)); // here, we don't test the scoring function itself, but just the method to retrieve opening times // we don't really need persons and plans, they're just used to initialize the ScoringFunction object final PopulationFactory pf = scenario.getPopulation().getFactory(); this.person = pf.createPerson(Id.create(1, Person.class)); Plan plan = pf.createPlan() ; this.person.addPlan(plan); Activity act = pf.createActivityFromCoord("shop", defaultCoord ) ; plan.addActivity(act); act.setFacilityId(testFacility.getId()); act.setStartTime(8.0 * 3600); act.setEndTime(16.0 * 3600); }