package cz.agents.agentpolis.tools.geovisio.spy.agentpolis; import java.sql.SQLException; import java.util.Map; import org.openstreetmap.osm.data.coordinates.LatLon; import com.vividsolutions.jts.geom.Coordinate; import cz.agents.agentpolis.simmodel.environment.model.citymodel.transportnetwork.elemets.Node; import cz.agents.agentpolis.tools.geovisio.geometryadapter.reader.CoordinateNotCreatedException; import cz.agents.agentpolis.tools.geovisio.geometryadapter.reader.CoordinateReader; /** * *@author Marek Cuchy * */ public class AgentPolisNodeMapCoordinateReader implements CoordinateReader { private Map<?,?> agentToNodeIdMap; private Map<?,Node> nodeIdMap; public AgentPolisNodeMapCoordinateReader(Map<?, ?> agentToNodeIdMap, Map<?, Node> nodeIdMap) { super(); this.agentToNodeIdMap = agentToNodeIdMap; this.nodeIdMap = nodeIdMap; } public Coordinate getCoordinate(Object agentId) throws SQLException, CoordinateNotCreatedException { Object nodeId = agentToNodeIdMap.get(agentId); Node node = nodeIdMap.get(nodeId); if(node==null){ throw new CoordinateNotCreatedException(agentId); } LatLon latLon = node.getLatLon(); return new Coordinate(latLon.lon(), latLon.lat()); } public void close() throws SQLException { } public void connect() throws SQLException, ClassNotFoundException { } }