I would think that moving is a function of units, not the map itself. Heck, pathfinding is a sufficently messy problem to warrent it's own class, which would take a map, two locations and a unit. That way you could easily have multiple path finders for different types of movements and units.
LineOfSight could be treated as a specific pathfinding object then. If your going to have some form of fog of war, then you might want to make visibility a map property also, and keep that updated as units are moved. That gets rather mess though if you want to keep seperate maps for different players.
You seem to lack a function to return the value of the attribute. QueryAttribute only tells you if it exists, not what the value is.
Jay
Jay