private boolean refreshPlaces(Section section) {
    //
    //  First of all, check to ensure that an update is required.  If so,
    //  generate new places for underlying tiles:
    if (section == null) return false ;
    final float time = world.currentTime() ;
    Caching caching = allCached.get(section) ;
    if (caching == null) {
      caching = new Caching() ;
      caching.section = section ;
      allCached.put(section, caching) ;
    }
    else if ((time - caching.lastUpdateTime) > UPDATE_INTERVAL) {
      for (Place place : caching.places) deletePlace(place) ;
    }
    else return false ;
    if (verbose || printSearch) {
      I.say("Refreshing places at: "+section.x+"|"+section.y+", time: "+time) ;
    }
    caching.places = grabPlacesFor(caching, section) ;
    caching.lastUpdateTime = time ;
    return true ;
  }