MASON-INTEREST-L@LISTSERV.GMU.EDU

View:

 Message: [ First | Previous | Next | Last ] By Topic: [ First | Previous | Next | Last ] By Author: [ First | Previous | Next | Last ] Font: Proportional Font

Subject:

spatial relations

From:

Date:

Fri, 26 Jul 2013 18:25:26 +0200

Content-Type:

text/plain

Parts/Attachments:

 text/plain (43 lines)
 ```Hi, I'm still trying to get used to MASON/GEOMASON and it seems I can't solve the actual problem alone. I have agents moving in a Room (movingSpace) which move from one point to another using the shortest path. Therefore i made my own grid which consists of tiles who cover the MBR of the movingSpace. My agents are moving fine and don't move out of it. Now I included obstacles - 2 walls which make a small exit. I want to know which Tile is near those walls or intersects/ is covered/contains/touched/ by it or in a certain distance of it. But none of those methods gives me a positive result. This is my setup: class Room (SimState) has these variables: GeomVectorField movingSpace -> includes a polygon as MasonGeometry (Polygon) GeomVectorField agents -> include the agents as MasonGeometry (Points) GeomVectorField obstacles -> includes 2 walls represented as MasonGeometry (LineString) I build tiles and every tile is a polygon (square): [...] Coordinate p1 = new Coordinate(xTile, yTile); Coordinate p2 = new Coordinate(xTile + Room.TILESIZE, yTile); Coordinate p3 = new Coordinate(xTile, yTile + Room.TILESIZE); Coordinate p4 = new Coordinate(xTile+ Room.TILESIZE, yTile+ Room.TILESIZE); Coordinate[] points = {p1, p2, p3, p4, p1}; LinearRing lr = new GeometryFactory().createLinearRing(points); Polygon poly = new GeometryFactory().createPolygon(lr); Tile tile = new Tile(i,j); //Tile extends MasonGeometry tile.setPolygon(poly); I tried obstacles.isCovered(tile), obstacles.getObjectswithinDistance(tile, 1.0), intersects etc. pp nearly everything which should give me a positive feedback. Do you have any clue what I'm doing wrong? Should I add every tile to another GeomVectorField to make those operations work? Thanks! Norman ```